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"
...
/>

  (六)效果如下截图:

随机推荐

  1. typescript 接口的新认识

    interface 用于接收服务器的数据. eg: interface mmmmm { x: string, y: number, z: number, select: KnockoutObserva ...

  2. Asteroids - poj 3041(二分图最大匹配问题)

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17258   Accepted: 9386 Description Be ...

  3. Fibonacci数列的幂和 zoj 3774

    题目大意: 求斐波那契数列前n项的k次幂和  Mod 1000000009.    n<=1e18, k<=1e5 这题的k比较大,所以不能用矩阵乘法来递推.学到了新姿势...  http ...

  4. What is /dev/null 2>&1?

    >> /dev/null redirects standard output (stdout) to /dev/null, which discards it. (The >> ...

  5. 关于OCR,一些想法

    OCR一般分为两种: 1,根据给定的字符特征集合,提取未知字符的特征进行匹配识别:(典型例子:GOCR) 2,不知道字符特征,但给出提取特征的规则,通过机器学习training来获取某个字符集的特征集 ...

  6. day17 内置函数

    一.内置函数接下来,我们就一起来看看python里的内置函数 分类图 1.作用域函数 基于字典的形式获取局部变量和全局变量 globals()——获取全局变量的字典 locals()——获取执行本方法 ...

  7. day4笔记

    今日讲解内容:1,int数字:运算.1 ,2,3... # 数字类型:int #范围.用于运算, + - * / // %.... bit_lenth :十进制数字用二进制表示的最小位数 a=10 p ...

  8. Uncaught Error: artDialog: Document types require more than xhtml1.0

    这需要声明html文档,加上如下声明就不会报错了! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  9. 解决java.lang.NoClassDefFoundError错误

    昨天在开发过程中,导入同事的一个服务到本地,首先从git上把项目拉下来,然后使用maven导入eclipse,然后build. build的过程中在项目的一个测试类里面报错 java.lang.NoC ...

  10. (转)gethostbyname() -- 用域名或主机名获取IP地址

    struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如"www.google.cn"等等.传出值, ...