android 手點擊處畫圓 然後淡出


	項目想添加一個小功能,當用手點擊屏幕的出現一個圓,之後顏色慢慢變淡然後消失
public class TestViewActivity extends Activity {
	public static int alpha = 255;
	private boolean upFlag = false;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new SimpleView(this));
    }
    private class SimpleView extends ImageView{
    	int point_x;
    	int point_y;
    	int radius = 0;
    	public SimpleView(Context context) {
			super(context);
			// TODO Auto-generated constructor stub
		}
		@Override
		public boolean onTouchEvent(MotionEvent event) {
			point_x = (int) event.getX();//獲取點擊位置
			point_y = (int) event.getY();
			if (event.getAction() == MotionEvent.ACTION_UP) {
				upFlag = true;
			}
			invalidate();
			return true;
		};
		
		protected void onDraw(android.graphics.Canvas canvas) {
			alpha -= 3;
			canvas.drawColor(Color.BLUE);   //設置背景色
			Paint paint = new Paint();
			paint.setColor(Color.WHITE);		//設置畫筆顏色
			paint.setAlpha(alpha);			//設置透明度
			paint.setStyle(Paint.Style.FILL);
			paint.setAntiAlias(true);
			if (upFlag) {
				++radius;
				if (radius > 26) {
					upFlag = false;
					radius = 0;
					alpha = 255;
				}
				if (radius == 18) {
					alpha = 100;
				}
				canvas.drawCircle(point_x, point_y, radius, paint); //畫圓
				invalidate();
			}
    	}
    }
}
當檢測到擡起的時候調用onDraw方法。代碼中使用的是繼承了ImageView,在ImageView中實現onDraw方法,同時在ondraw中必要的位置調用invalidate去實現重畫,這樣就可以給人以動態的感覺了。圓的半徑、畫筆的顏色、透明度的改變都可以根據自己的感覺去調試。
發佈了32 篇原創文章 · 獲贊 3 · 訪問量 55萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章