android点击屏幕特效,Android自定义控件(特效一) 点击屏幕,根据所点击的位置绘制圆环...
之前在三星手機上看到點擊屏幕后出現水波的特效,所以嘗試著寫了個類似的效果
實現自定義一個View,并實現構造方法
public class MyView extends View {
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
}
如果要繪制圓環,則需要設置圓環的半徑、描邊寬度(如果弄填充滿的則不需要)、X和Y的坐標,因為點擊屏幕出現圓環后還需要消失,所以還要加上透明度
那么我們新建一個Bean,去實現這些
public class MyBean {
int alpha; // 透明度
int X; // X坐標
int Y; // Y坐標
float width; // 描邊寬度
float radius; // 半徑
Paint paint; // 畫筆
}
接下來就是獲取點擊屏幕后的事件,思路很明確,點擊屏幕后,首先設置繪制的圓的半徑為0,透明度為最大值255,描邊寬度這里按個人喜好隨意設置
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 點擊屏幕后 半徑設為0,alpha設置為255
MyBean bean = new MyBean();
bean.radius = 0; // 點擊后 半徑先設為0
bean.alpha = MaxAlpha; // alpha設為最大值 255
bean.width = bean.radius / 8; // 描邊寬度 這個隨意
bean.X = (int) event.getX(); // 所繪制的圓的X坐標
bean.Y = (int) event.getY(); // 所繪制的圓的Y坐標
bean.paint = initPaint(bean.alpha, bean.width);
break;
}
return true;
}
設置完屬性后,交給handler去繪制界面,每過X毫秒后,繪制的圓的半徑+N,透明度-M
bean.radius += 5;// 半徑每次+5
bean.alpha -= 10;// 透明度每次減10
if (bean.alpha < 0) {
// 透明度小雨0的時候 賦為0
bean.alpha = 0;
}
bean.width = bean.radius / 8; // 描邊寬度設置為半徑的1/4
bean.paint.setAlpha(bean.alpha);
bean.paint.setStrokeWidth(bean.width);
至此,我們所有的主要代碼已實現
原文:http://blog.csdn.net/qq_18612815/article/details/51329364
總結
以上是生活随笔為你收集整理的android点击屏幕特效,Android自定义控件(特效一) 点击屏幕,根据所点击的位置绘制圆环...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用好这种颜色,深秋照片更有味道
- 下一篇: pdf to word android,