你的位置:首页 > 软件开发 > 操作系统 > 自定义控件——随着手指移动的小球

自定义控件——随着手指移动的小球

发布时间:2016-10-09 15:00:09
一个关于自定义控件的小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 (#换成@)。

可能感兴趣文章

我的浏览记录