android 自定义preference的属性

最近碰到了个问题,我想调整checkboxpreference中的图片的大小以及位置,学习了下发出来:

1. 拷贝并重命名framework/base/core/res/res/layout/preference.xml到你的工程目录res/layout/,如mypreference.xml

2. 修改mypreference中你想修改对应的属性,不赘述,大家都会。

3. 如果是用静态加载preference的,在preference的xml里加入属性  android:layout="@layout/mypreference"

    如果是代码中动态加载的,new了preference的对象后,setLayoutResource(R.layout.mypreference)即可。



顺带说下动态和静态加载preference。

1. 静态加载很简单,在preferenceActivity中addPreferencesFromResource(r.xml.xxxx);即可

   然后各种findpreference(key)即可。

2. 动态加载 : 需要首先创建一个preferenceScreen对象,然后通过这个对象来addpreference。

步骤如下:

            PreferenceScreen prefscreen;

             prefscreen = this.getPreferenceManager().createPreferenceScreen(
getApplicationContext());

this.setPreferenceScreen(prefscreen);

       想要添加某个preference到这个screen的时候,(以checkbox为例)只需要new CheckBoxPreference();

        设置title,设置summary,然后prefscreen.addPreference(checkboxpreference);

可以参考蓝牙设置的扫描结果的写法,比较经典。


最后再说下注意点:

PreferenceActivity中增加PreferenceScreen的时候都是增加到了此Activity的ListView中,也就是说,在Activity的layout中必须有如下成员:

特别注意Id,不能变

 <ListView 
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            ></ListView>

其余属性都可以任意调整布局。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值