Android设置自定义首选项布局

Android设置自定义首选项布局,第1张

Android设置自定义首选项布局

显然,如果您要对颜色进行硬编码,则可以在XML中进行编码:

android:background="@android:color/red"

如果您想在代码中执行此 *** 作,那么不幸的是,它比看起来更棘手。您不能只设置首选项视图的颜色,

onCreate()
因为首选项视图存储在列表中,并在滚动列表时动态创建和回收。

创建视图时,需要设置背景颜色。为此,您需要实现一个自定义首选项类并重写

getView()

public class CustomColorPreference extends Preference{    int backgroundColor = Color.BLACK;    public CustomColorPreference(Context context) {        super(context);    }    public CustomColorPreference(Context context, AttributeSet attrs) {        super(context, attrs);    }    public void setCustomBackgroundColor(int color)    {        backgroundColor = color;    }    @Override    public View getView(View convertView, ViewGroup parent)    {        View v = super.getView(convertView, parent);        // v.setBackgroundColor(backgroundColor); // set background color of whole view        ImageView ivNameTextColor = (ImageView)v.findViewById(R.id.ivNameTextColor);        ivNameTextColor.setBackgroundColor(backgroundColor);        return v;    }}

更改XML以使用

CustomColorPreference
该类:

<com.example.yourapp.CustomColorPreference        android:key="pref_name_color_picker"        android:title="Colour"        android:summary="Colour of the name"        android:defaultValue="#FFFFFF"        android:layout="@layout/custom_name_setting_layout" />

然后,您

onCreate
可以
CustomColorPreference
使用public方法获取并为其设置颜色
setCustomBackgroundColor()

CustomColorPreference picker = (CustomColorPreference)findPreference("pref_name_color_picker");picker.setCustomBackgroundColor(Color.RED);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5427214.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存