Android自定义控件风格的方法

EditText在获取焦点后默认的边框都是黄色的,这可能和我在开发的应用的主题颜色不匹配,那怎么办呢?——用自定义的控件风格,比如说我想让EditText在获取焦点时候边框变成蓝色的,而失去焦点后边框变成灰色的,要实现这个目的方法如下:

  • 先在PS中画两张png图片,一张为蓝色边框、白色填充的圆角矩形,另一张为灰色边框、白色填充的圆角矩形,两个矩形形状完全相同。这两种图片分别作为EditText在激活和未激活两个状态的背景图片。一张命名为et_pressed.png,另一张为et_normal.png,如下:

    Android自定义控件风格的方法_第1张图片

    Android自定义控件风格的方法_第2张图片

  • 使用draw9patch.bat工具(该工具的使用方法见这篇文章:Android制作和使用Nine-Patch图片)将上面两个图片制作成Nine-Patch图片,并分别命名为:et_pressed.9.pnget_normal.9.png,如下:

    Android自定义控件风格的方法_第3张图片

    Android自定义控件风格的方法_第4张图片

  • 将这两个Nine-Patch图片放到项目的res/drawable目录下,并在res/drawable目录下新建一个名为selector_edittext_bg.xml的xml文件,内容如下:




    
    


  • res/values/styles.xml文件中添加如下内容:

  • 在xml布局文件中只需这样设置EditText的style属性即可达到预期效果:

  • 效果如下截图:


    Android自定义控件风格的方法_第5张图片

    Android自定义控件风格的方法_第6张图片

你可能感兴趣的:(Android自定义控件风格的方法)