android 颜色选择的实现
来源:互联网 发布:护士的职业规划知乎 编辑:程序博客网 时间:2024/05/18 05:43
在Api Demo里面有一个叫ColorPickerDialog的对话框,该对话框扩展了Dialog 的功能,使其具备颜色选择器的功能。具体可以参考Api Demo源代码,路径为:android-sdk-windows/samples/android-7/ApiDemos/src/com /example/android/apis/graphics/ColorPickerDialog.java
本功能是基于上述的颜色选择器对话框进行扩展,模仿PreferceActivity 组件的实现方式,新建一个名为ColorPickerPreference 的类使其继承自DialogPreference 并实现其内部功能菜单,如图:
在Api Demo里面的颜色选择器是不具备有黑色和白色的选择的,这里我们虽然使用api Demo 里面的颜色选择器但其内部我们稍稍改造了一下。使其支持黑色和白色的选择,如上图中间的一条颜色条,头部和尾部分别代表黑色和白色。
为了显示的友好性,如果用户选择了颜色应该应该会有一个内容窗口或者一个文本对用户的选择做出相应的预览效果,。我们这里使用了一个TextView 做为颜色的预览效果,我们知道,Preference 的summary 只支持字符串的操作,类似下面的图:
如上图,只支持类型类型为CharSequence和字符所在的资源ID位置,那么我们这里如何使其支持颜色的显示和动态更换颜色呢?
这一切都在神奇的回调函数,onCreateView 里面这个方法先于 onBindView 执行,在里面初始化视图并且返回视图。具体处理见下面代码:
上面代码,我们通过LayoutInflater 函数引入一个外部的布局文件,然后设置其title 和summary 并初始其颜色,通过SharedPreferences 类调用保存后的颜色值,布局文件如下:
实始化对话框的回调函数里面我们为其添加一个ColorPickerDialog 本身的颜色改变的事件监听并为其初始化颜色值,代码如下:
当对话框关闭时,即选择完颜色后,我们就要马上回去更新文本的颜色和将颜色值保存到键值里面,代码如下:
通过重写,onDialogClosed 回调函数,到这一步整个的封装就己结束,在XML可以通过如下使用
Tip:自己封装控件不论是自定义控件也好,preference 也好在XML里面都是无法智能提示的,只要自己把握好输入的属性准确无误就行。
完整代码如下:
- android 颜色选择的实现
- Android 购物选择颜色(尺码)实现(一)
- Android 购物选择颜色、尺码实现(二)
- JS实现的一个颜色选择框
- 在Android上边实现相PC上的颜色选择版ColorPickerView
- android 颜色选择类
- Android 颜色选择控件
- android颜色选择控件
- OpenGL 颜色的选择
- 颜色的选择
- 利用javascript在asp.net中实现颜色的选择
- FpSpread中实现颜色选择ComboBox的方法
- 一个类似CColorDialog中颜色选择的控件实现
- android文件选择的实现
- Android listView选择颜色状态
- Android选择颜色,尺码联动
- Android 开源库_酷炫的颜色选择画板
- Android 仿PhotoShop调色板应用(四) 不同区域颜色选择的颜色生成响应
- 做人要有自尊,做人要有大度
- Objective-C 2.0 with Cocoa Foundation--- 1,前言
- log4j配置xml和properties实例
- AD7705测试问题
- 只读字段
- android 颜色选择的实现
- 添加几个常用音频格式的GUID
- 解决ORA-01536: 超出表空间'表空间名'的空间限量
- Objective-C 2.0 with Cocoa Foundation --- 2,从Hello,World!开始
- 程序员写的叫struts
- 线程间操作无效: 从不是创建控件“...”的线程访问它(解决方法)
- 考虑到可扩展性
- SSH框架整合
- Featured Article: /proc/meminfo Explained