一个关于自定义控件的小Demo,随着手指移动的小球。 先看下效果图: 实现代码如下: 1.自定义控件类 1 package com.dc.customview.view; 2 3 import android.content.Context; 4 import ...
一个关于自定义控件的小Demo,随着手指移动的小球。
先看下效果图:
实现代码如下:
1.自定义控件类
1 package com.dc.customview.view; 2 3 import android.content.Context; 4 import android.graphics.Canvas; 5 import android.graphics.Color; 6 import android.graphics.Paint; 7 import android.util.AttributeSet; 8 import android.view.MotionEvent; 9 import android.view.View;10 import android.view.WindowManager;11 12 public class DrawCircle extends View {13 //圆的初始位置14 private int x = 100;15 private int y = 100;16 Context context;17 18 /**19 * 有style资源文件时调用20 * @param context21 * @param attrs22 * @param defStyle23 */24 public DrawCircle(Context context, AttributeSet attrs, int defStyle) {25 super(context, attrs, defStyle);26 this.context = context;27 }28 /**29 * 30 * @param context31 * @param attrs32 */33 public DrawCircle(Context context, AttributeSet attrs) {34 super(context, attrs);35 this.context = context;36 }37 /**38 * java代码创建时调用39 * @param context40 */41 public DrawCircle(Context context) {42 super(context);43 this.context = context;44 }45 46 @Override47 protected void onDraw(Canvas canvas) {48 super.onDraw(canvas);49 // 画笔50 Paint paint = new Paint();51 paint.setColor(Color.RED);52 53 //绘制圆 54 //cx :圆心的x坐标55 //cy :圆心的y坐标 56 //radius :圆的半径57 //paint :画笔58 canvas.drawCircle(x, y, 20, paint);59 }60 61 @Override62 public boolean onTouchEvent(MotionEvent event) {63 switch (event.getAction()) {64 case MotionEvent.ACTION_DOWN:65 66 case MotionEvent.ACTION_MOVE:67 68 case MotionEvent.ACTION_UP:69 // 获取当前触摸点的x,y坐标70 71 x = (int) event.getX();72 y = (int) event.getY();73 74 75 break;76 }77 //获取屏幕宽高78 WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);79 int width = manager.getDefaultDisplay().getWidth();80 int heigh = manager.getDefaultDisplay().getHeight();81 82 //重新绘制圆 ,控制小球不会被移出屏幕83 if(x>=20 && y>=20 && x<=width-20 && y<=heigh-90){84 invalidate();85 }86 // 自己处理触摸事件87 return true;88 }89 90 }
原标题:自定义控件——随着手指移动的小球
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。