Android布局——Preference自定义layout的方法_Android

导语:PreferenceActivity是一个方便设置管理的界面,但是对于界面显示来说比较单调,所以自定义布局就很有必要了。本文举例说明在Preference中自定义layout的方法。笔者是为了在设置中插入@有米v4广告条才研究了一晚上的。

正文:首先PreferenceScreen是一个xml文件于res/xml目录下,不属于layout文件。要插入layout,有两种方法。
1.使用Preference的android:@layout属性
1)xml文件中preference的添加

复制代码 代码如下:

<Preference android:layout="@layout/youmi_ad" android:key="youmi_ad"/>

2)layout.xml

复制代码 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<!-- 有米广告 -->
<akai.settings.YoumiAd
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
/>
</LinearLayout>

3)由于v4版本的广告条需要自己定义layout载体,所以这里重载了一个LinearLayout,自定义布局也是如此。

在YoumiAd.java中处理布局文件,其他布局类似,不再叙述。

复制代码 代码如下:

public class YoumiAd extends LinearLayout{
public YoumiAd(Context context) {
super(context);
init(context);
}
public YoumiAd(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
private void init(Context context) {
//init youmi ad
AdView adView = new AdView(context, AdSize.SIZE_320x50);
this.addView(adView);
adView.setAdListener(new AdViewLinstener() {
@Override
public void onSwitchedAd(AdView arg0) {
Log.i("Youmi", "广告条切换");
}
@Override
public void onReceivedAd(AdView arg0) {
Log.i("Youmi", "请求广告成功");
}
@Override
public void onFailedToReceivedAd(AdView arg0) {
Log.i("Youmi", "请求广告失败");
}
});
}

}

2.将layout添加到Activity中 setContentView(R.layout.youmi_ad)以自定义内容
1)xml文件中preference的添加

复制代码 代码如下:

<Preference android:layout="@layout/youmi_ad" android:key="youmi_ad"/>

2)layout.xml,需要添加一个ListView控件,且id为list,不然不能运行,应该是由于PreferenceActivity是一个List的原因吧。

复制代码 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false"
android:layout_weight="1"
/>
<!-- 有米广告 -->
<LinearLayout
android:id="@+id/adLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
/>
</LinearLayout>

3)在Activity中的onCreate添加setContentView(R.layout.youmi_ad);然后就可以使用findViewById去获取自定义布局下的控件了。

时间: 2024-11-03 04:12:40

Android布局——Preference自定义layout的方法_Android的相关文章

Android APP使用自定义字体实现方法_Android

android系统内置字体 android 系统本身内置了一些字体,可以在程序中使用,并且支持在xml配置textView的时候进行修改字体的样式.支持字段为android:textStyle ,android:typeface, android:fontFamily,系统内置了normal|bold|italic三种style, 内置了normal,sans,serif,monospace,几种字体(实测这几种字体仅英文有效),typace和fontFamily功能一样. 使用自定义的字体 以

Android编程实现自定义手势的方法详解_Android

本文实例讲述了Android编程实现自定义手势的方法.分享给大家供大家参考,具体如下: 之前介绍过如何在Android程序中使用手势,主要是系统默认提供的几个手势,这次介绍一下如何自定义手势,以及如何对其进行管理. 先介绍一下Android系统对手势的管理,Android系统允许应用程序把用户的手势以文件的形式保存以前,以后要使用这些手势只需要加载这个手势库文件即可,同时Android系统还提供了诸如手势识别.查找及删除等的函数接口,具体如下: 一.加载手势库文件: staticGestureL

Android编程实现自定义手势的方法详解

本文实例讲述了Android编程实现自定义手势的方法.分享给大家供大家参考,具体如下: 之前介绍过如何在Android程序中使用手势,主要是系统默认提供的几个手势,这次介绍一下如何自定义手势,以及如何对其进行管理. 先介绍一下Android系统对手势的管理,Android系统允许应用程序把用户的手势以文件的形式保存以前,以后要使用这些手势只需要加载这个手势库文件即可,同时Android系统还提供了诸如手势识别.查找及删除等的函数接口,具体如下: 一.加载手势库文件: staticGestureL

Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

  [Android布局学习系列]   1.Android 布局学习之--Layout(布局)详解一   2.Android 布局学习之--Layout(布局)详解二(常见布局和布局参数)   3.Android 布局学习之--LinearLayout的layout_weight属性   4.Android 布局学习之--LinearLayout属性baselineAligned的作用及baseline      Layout Parameters(布局参数):            在XML文

Android布局居中的几种做法_Android

Android的布局文件中,如果想让一个组件(布局或View)居中显示在另一个布局(组件)中,可以由这么几种做法: android:layout_gravity android:gravity android:layout_centerInParent layout_gravity android:layout_gravity ,用来指定当前组件(布局或View)在父组件(布局)中的位置,父布局应该是LinearLayout或者它的后裔. layout_gravity取值可能是: top bot

Android中用Builder模式自定义Dialog的方法_Android

前言 我们开发人员在实际项目过程中遇到的需求是多种多样的,有时我们要匹配APP自己的设计风格,有时我们会觉得系统的对话框使用起来不够自由,因此自己定义一个适合自己的Dialog是很有必要的. 为什么要用Builder模式 Builder设计模式是一步步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程.它的优点就在于将对象的构建和表示分离从而解耦.我们都知道Android系统自身的对话框如AlertDialog就采用了Builder模式,因此可见

android自定义组件实现方法_Android

本文实例讲述了android自定义组件实现方法.分享给大家供大家参考.具体如下: atts.xml: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="TopBar"> <attr name="titleText" format="string"/> <

Android动态添加设置布局与控件的方法_Android

本文实例讲述了Android动态添加设置布局与控件的方法.分享给大家供大家参考,具体如下: 有时候我们会在代码端,动态的设置,添加布局和控件.下面我们就看来看一下如何处理,直接上代码,代码里面的注解很清楚了. 布局文件:fragment_hot.xml 说明:这个部局,我用的是scrollView做为基础布局,主要是为了实现一个滚动.这里不多说,这个你可以使用任何布局都可以,这里的id我是提前定义的. 这里面的现在有的布局是我为了看到我在代码端,动态添加的代码,是否可以追加到现有布局的后面而加上

Android中实现布局背景模糊化处理的方法_Android

在模仿 IOS 密码输入页面的时候发现其背景有模糊处理,于是了解了一下并记录下来,以便使用.在Android 中具体实现方法如下 查考 http://www.jb51.net/article/64781.htm private void applyBlur() { // 获取壁纸管理器 WallpaperManager wallpaperManager = WallpaperManager.getInstance(this.getContext()); // 获取当前壁纸 Drawable wa