Android自定义控件风格的方法

  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文件,内容如下:

1 <?xml version="1.0" encoding="utf-8"?>
2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
3
4     <item android:drawable="@drawable/et_pressed" android:state_focused="true"/>
5     <item android:drawable="@drawable/et_normal"/>
6
7 </selector>

  (四)往res/values/styles.xml文件中添加如下内容:

1 <style name="MyEtStyle" parent="@android:style/Widget.EditText">
2         <item name="android:background">@drawable/selector_edittext_bg</item>
3     </style>

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

1 <EditText
2                     android:id="@+id/input_et"
3                     style="@style/MyEtStyle"
4                     ...
5 />

  (六)效果如下截图:

时间: 2024-08-25 05:16:12

Android自定义控件风格的方法的相关文章

Android自定义控件系列七:详解onMeasure()方法中如何测量一个控件尺寸(一)

转载请注明出处:http://blog.csdn.net/cyp331203/article/details/45027641 自定义view/viewgroup要重写的几个方法:onMeasure(),onLayout(),onDraw().(不熟悉的话可以查看专栏的前几篇文章:Android自定义控件系列二:自定义开关按钮(一)). 今天的任务就是详细研究一下protected void onMeasure(int widthMeasureSpec, int heightMeasureSpe

Android自定义控件系列案例【四】

案例效果: 模拟器上运行有些锯齿,真机上和预期一样好 案例分析: 看效果,第一直觉肯定是Android原生态控件中没有这样的控件实现这种效果,自然想到应该需要自定义控件了,没错,这就是通过自定义控件来绘制的一个圆环进度条.仔细分析发现这个效果的进度条应该由几个部分组成,首先是无进度时的浅色圆环,然后是一个随进度变化的深色圆弧,而中间部分是一个深蓝色的实心圆,最后就是显示进度百分比的文字.这几部分大部分都是图形,所以使用图形绘制技术应该可以绘制出分部分效果,然后加上进度控制部分应该心里就有底了.

Android自定义控件View(三)组合控件

不少人应该见过小米手机系统音量控制UI,一个圆形带动画效果的音量加减UI,效果很好看.它是怎么实现的呢?这篇博客来揭开它的神秘面纱.先上效果图 相信很多人都知道Android自定义控件的三种方式,Android自定义控件View(一)自绘控件,Android自定义控件View(二)继承控件,还有就是这一节即将学习到的组合控件.我们通过实现圆形音量UI来讲解组合控件的定义和使用. 组合控件 所谓组合控件就是有多个已有的控件组合而成一个复杂的控件.比如上图的音量控件就是一个完美的组合控件.我们来分析

Android自定义控件---“取消”视图

一.前言 好久没更新博客了,最近一直在忙,找实习,整理毕业资料,找房子等等.现在大部分基本忙完了,这几天在公司写的一些自定义控件,打算发出来与大家分享. 首先看看最终的效果图 这个自定义视图的应用场景,主要用于替代对话框左上角或者右上角的取消按钮.按照我以前的做法,都是设计师发给我一张图片,我自己创建一个ImageView,再把图片设置进去就结束了.如果有天产品经理看得不爽,想要圆形,或矩形,对角线想要XXX颜色.又得等设计师发图了(本人不太会PS啊).所以为了避免麻烦,打算自己写一个. 二.自

Android Metro风格的Launcher开发系列第二篇

前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客Android Metro风格的Launcher开发系列第一篇写了如何配置Android开发环境,只是用文字和图片展示了开发Metro风格Launcher的初步设计和产品要求,这一篇文章将会从代码上讲解如何实现对应的UI效果,好了,评书开讲! Launcher主体框架实现: Launcher主体框架我选用的是大家所熟悉的ViewPager控件,因为ViewPager

android自定义控件实现TextView按下后字体颜色改变

今天跟大家分享一下Android自定义控件入门,先介绍一个简单的效果TextView,按下改变字体颜色,后期慢慢扩展更强大的功能 直接看图片             第一张是按下后截的图,功能很简单,也很容易实现,下面来看一下如何通过重写TextView来实现 一共三个文件  TextViewM.java,MainActivity.java,activity_textview.xml TextViewM.java 1 package landptf.control; 2 3 import and

android 自定义控件---圆形方向盘

在做Android平台开发的时候,经常会遇到安卓原生控件无法满足需求的情况,安卓允许开发者去继承已经存在的控件或者实现你自己的控件. 先来看一下效果图 采用直接集成View类,重写onDrow方法绘制. 下面附上主要代码. 1 新建一个类CircleView 继承自View 1 package com.lennon.view; 2 3 import android.content.Context; 4 import android.graphics.Canvas; 5 import androi

Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件

这个例子是比较有用的,基本上可以说,写完这一次,以后很多情况下,直接拿过来addView一下,然后再addInterceptorView一下,就可以轻轻松松的达到组合界面中特定控件来响应特定方向的触摸事件了. 请尊重原创劳动成果,转载请注明出处:http://blog.csdn.net/cyp331203/article/details/45198549,非允许请勿用于商业或盈利用途,违者必究. 在写Android应用的过程之中,经常会遇到这样的情况:界面包含了多个控件,我们希望触摸在界面上的不

Android自定义控件_View的绘制流程

每一个View/ViewGroup的显示都会经过三个过程:1.measure过程(测量View显示的大小,位置):2.layout过程(布局view的位置):3.draw过程(上一篇文章说到的通过canvas绘制到界面上显示,形成了各色的View) 下面分析一下各个过程:measure过程: 因为DecorView实际上是派生自FrameLayout的类,也即一个ViewGroup实例,该ViewGroup内部的ContentViews又是一个ViewGroup实例,依次内嵌View或ViewG