ColorButton 的实现
作者: 刘鹏
日期: 2010-03-12
本文总结了 Android 自带 Calculator 程序中 ColorButton 的实现方法。
|
简介Android 平台自带了一个计算器程序(Calculator), UI 做的非常漂亮美观,如 下图所示。
实现原理普通状态下的按钮按钮由两部分组成:一是黑色背景;二是一个透明背景的圆,圆内侧有一块白斑, 为按钮带来立体感。如下图所示:
按钮按下特效按钮按下时变成带渐变效果的红色,该效果用一带渐变效果的底图跟前景色红色按 PorterDuff 中的 SRC_IN 模式进行组合得到,如下图所示:
动画的实现按下按钮后抬起鼠标,按钮有个红色图案旋转的特效,实现思路有如下几点:
|
代码如下
我对其中的几点疑惑,希望有人能回答:
1. mButtonBackground.setColorFilter(color, PorterDuff.Mode.SRC_IN);
是怎样的过滤机制??
2.
canvas.rotate(angle, cx, cy);
mButtonBackground.draw(canvas);
canvas.rotate(-angle, cx, cy);
旋转对应的角度,为什么后面有旋转对应的-角度