课程/Android/移动开发
带您完成神秘的涟漪按钮效果-提高篇
-
-
qq_Ranc鹏_0
2017-05-31
- 1、首先确定点击位置,设置为启动时的圆心
2、圆心是逐渐移动的,结束位置为控件的中心区域
3、圆的半径最大值为中心到边缘的最大长度
4、背景颜色透明度逐渐加深的过程
-
0赞 · 0采集
-
-
xzhang76
2017-05-19
- 增强涟漪动画效果
1.效果图
(1)背景色变深
(2)圆心位置向中心位置移动
(3)圆半径变大
2.先实现后面两点
1.圆半径随进度变大,这个已经实现
2.涟漪效果的圆心向控件中心靠拢——根据按下位置和控件中心位置 再结合进度来计算
private float mDrawableX, mDrawableY; // 涟漪效果的圆心
private float mDownCenterX, mDownCenterY; // 按下时的点
private float mCenterX, mCenterY; // 控件的中心位置
计算方法:
mDrawableX = mDownCenterX + (mCenterX - mDownCenterX) * realProgress;
mDrawableY = mDownCenterY + (mCenterY - mDownCenterY) * realProgress;
综上,可以抽出一个方法:
private void onProgressChanged(float realProgress) {
mRadius = mMaxRadius * realProgress;
mDrawableX = mDownCenterX + (mCenterX - mDownCenterX) * realProgress;
mDrawableY = mDownCenterY + (mCenterY - mDownCenterY) * realProgress;
invalidateSelf();
}
在runnable中进度值变化时调用。
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- !!!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- ***可以通过得到当前发生改变的区域,然后进行计算得到中心点。当区域发生改变的时候,就会调用onBoundChange()方法。
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- !!!赋值
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- !!!!定义变量
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- !!!设置递增值。
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- !!!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- 第一帧到第六帧。。背景颜色逐渐加深的运算
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-13
- !!!
-
截图
0赞 · 0采集