Android 自定义控件----( 原生控件修改 onDraw )

Android 的控件自定义有N多的方法, 简单点来总结至少包括

 

      1. 组合控件。(将现有控件组合在你的新控件里,例如一个 ImageView 和 一个 Button 控件)之后总结这种自定义方式的具体使用。

      2. 纯手工全新打造,继承自 View  自己重新写  onMeasure  以及 onDraw 函数 ... (好吧,这个家当比较专业,当然是否使用看你自己)

     3. 现有原生控件显示改变。(继承自你需要改变的控件,然后修改他的 onDraw 函数)


这次简单点,我介绍方法3的实现:

例如修改TextView控件,给每个TextView显示前添加一个Icon。

1. 首先不罗嗦,继承自TextView。

2. 定义一个初始化函数, new Paint  对象,在 onDraw 函数中使用。(没必要每次都在 onDraw 函数中 new Paint)

3. 重载 onDraw 函数。

细节说明:

1. 继承自 TextView 后,构造函数选择成 public MyTextView(Context context, AttributeSet attrs) 

     要不使用的时候你会悲剧的


2. 添加成员变量  private Paint mIconPaint;  用来绘制Icon。(当然这里最好自己把平滑参数设置进去,别总是画出毛边)


3. 重载 onDraw 函数。

   首先,绘制你的ICON,Canvas 的函数 drawBitmap 应该可以帮助你实现 ICON的绘制。

   继续,完成ICON绘制后,(save) 画布,  (translate)平移一下画布位置,让 父类 (TextView)完成剩余的绘制动作。

   最后, 调用 super.onDraw, 让父类完成 TextView本身的绘制动作, 函数返回前 restore一下画布,你想要的就实现了。


看到这里,如果你想定制原生控件,那么应该有一个小思路了吧,也许以前看书的时候对于各种绘图函数的使用没有

太注意,呵呵,现在可以去复习一下了吧,用到了吧。(留个小问题,自定义控件,如果需要添加XML属性,微笑)


==========================================================================

当然这里的实例,你也可以用组合控件,重新实现, ImageView + TextView 就 OK 了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值