$Android自定义控件风格的方法
2024-08-30 21:04:27
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文件,内容如下:
<?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"
...
/>
(六)效果如下截图:
最新文章
- js的querySelector跟querySelectorAll
- MSTest、NUnit、xUnit.net 属性和断言对照表
- JAVA中的throws和throw的区别
- JAVA内部类(转)
- TDirectory.Move移动或更名目录
- 用java具体代码实现分数(即有理数)四则运算
- C#实现防拷贝工具示例
- 超棒的自定义超酷滚动条jQuery插件 - Perfect Scrollbar
- HTTP请求响应机制与响应状态码
- web.xml文件--编码注意事项
- javabean的特点
- JAVA记录-java代码优化策略
- 移动APP项目总结
- mysql存储过程----临时表 temporary
- 机器学习入门-使用GridSearch进行网格参数搜索GridSeach(RandomRegressor(), param_grid, cv=3)
- Linux setfacl/getfacl命令详解
- python 实现字符串的切片功能
- linux利器expect的使用
- A1048
- Linux学习总结(四)-两种模式修复系统,单用户,救援模式
热门文章
- K - Large Division 判断a是否是b的倍数。 a (-10^200 ≤ a ≤ 10^200) and b (|b| >; 0, b fits into a 32 bit signed integer). 思路:取余;
- Gold Balanced Lineup - poj 3274 (hash)
- 什么是Web Services?
- 推荐个WIN7下小巧的可转录声音的软件-Audio Record Wizard V6.99
- ORACL EXP导出数据说明
- poj 2594(可相交的最小路径覆盖)
- JavaScript中的对象类型详解
- <;2013 08 12>; Andrew:C语言的一点心得
- python函数的学习笔记
- AJAX 入门