$Android自定义控件风格的方法
2016-04-08 00:29
393 查看
EditText在获取焦点后默认的边框都是黄色的,这可能和我在开发的应用的主题颜色不匹配,那怎么办呢?——用自定义的控件风格,比如说我想让EditText在获取焦点时候边框变成蓝色的,而失去焦点后边框变成灰色的,要实现这个目的方法如下:
(一)先在PS中画两张png图片,一张为蓝色边框、白色填充的圆角矩形,另一张为灰色边框、白色填充的圆角矩形,两个矩形形状完全相同。这两种图片分别作为EditText在激活和未激活两个状态的背景图片。一张命名为et_pressed.png,另一张为et_normal.png,如下:
(二)使用draw9patch.bat工具(该工具的使用方法见这篇文章:Android制作和使用Nine-Patch图片)将上面两个图片制作成Nine-Patch图片,并分别命名为:et_pressed.9.png和et_normal.9.png,如下:
(三)将这两个Nine-Patch图片放到项目的res/drawable目录下,并在res/drawable目录下新建一个名为selector_edittext_bg.xml的xml文件,内容如下:
(四)往res/values/styles.xml文件中添加如下内容:
(五)在xml布局文件中只需这样设置EditText的style属性即可达到预期效果:
(六)效果如下截图:
(一)先在PS中画两张png图片,一张为蓝色边框、白色填充的圆角矩形,另一张为灰色边框、白色填充的圆角矩形,两个矩形形状完全相同。这两种图片分别作为EditText在激活和未激活两个状态的背景图片。一张命名为et_pressed.png,另一张为et_normal.png,如下:
(二)使用draw9patch.bat工具(该工具的使用方法见这篇文章:Android制作和使用Nine-Patch图片)将上面两个图片制作成Nine-Patch图片,并分别命名为:et_pressed.9.png和et_normal.9.png,如下:
(三)将这两个Nine-Patch图片放到项目的res/drawable目录下,并在res/drawable目录下新建一个名为selector_edittext_bg.xml的xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/et_pressed" android:state_focused="true"/> <item android:drawable="@drawable/et_normal"/> </selector>
(四)往res/values/styles.xml文件中添加如下内容:
<style name="MyEtStyle" parent="@android:style/Widget.EditText"> <item name="android:background">@drawable/selector_edittext_bg</item> </style>
(五)在xml布局文件中只需这样设置EditText的style属性即可达到预期效果:
<EditText android:id="@+id/input_et" style="@style/MyEtStyle" ... />
(六)效果如下截图:
相关文章推荐
- GitHub Android Libraries Top100 简介
- vs2013 连接 海马玩模拟器
- Android大图片裁剪终极解决方案 原理分析
- Android,IntentService
- Android学习之Snackbar使用文档翻译
- 文件_ _android从资源文件中读取文件流并显示的方法
- android IPC机制讲解(三)
- android中关于调用键盘的问题
- 内存泄露从入门到精通三部曲之基础知识篇
- 内存泄露从入门到精通三部曲之常见原因与用户实践
- 内存泄露从入门到精通三部曲之排查方法篇
- iOS培训与Android培训的收入差距
- bug_ _图片_android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>
- Android单元测试框架
- android tab底部标签栏
- Android进阶学习-使用Canvas自定义简单TextView(1)
- android自定义滑动选择开关
- 巧用setContentView的应用
- bug_ _小心android-support-v4.jar版本混乱造成的NoClassDefFoundError
- 使用异步任务下载--疯狂android讲义实例