Android实现随手指移动小球
本文实例为大家分享了Android实现随手指移动小球的具体代码,供大家参考,具体内容如下
这个随手指移动小球,首先要使用paint画笔在canvas画布画出一个圆,然后重写OnTouchEvent(),进行小球的坐标的获取和小球的重新绘画。
packagecom.bwei.self_view;
importandroid.content.Context;
importandroid.graphics.Canvas;
importandroid.graphics.Color;
importandroid.graphics.Paint;
importandroid.support.annotation.Nullable;
importandroid.util.AttributeSet;
importandroid.view.MotionEvent;
importandroid.view.View;
importandroid.view.WindowManager;
/**
*CreatedbyZhangTAOon2017/11/2.
*/
publicclassMyViewextendsView{
//初始化圆的位置
publicintx=200;
publicinty=600;
Contextcontext;
publicMyView(Contextcontext){
super(context,null);
this.context=context;
}
publicMyView(Contextcontext,@NullableAttributeSetattrs){
super(context,attrs,0);
this.context=context;
}
publicMyView(Contextcontext,@NullableAttributeSetattrs,intdefStyleAttr){
super(context,attrs,defStyleAttr);
initView();
this.context=context;
}
privatevoidinitView(){
setBackgroundColor(Color.BLUE);
}
/**
*@canvas画布paint画笔
*/
@Override
protectedvoidonDraw(Canvascanvas){
super.onDraw(canvas);
//建立一根画笔
Paintpaint=newPaint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setFakeBoldText(true);
//画布
canvas.drawCircle(DipUtils.dip(getContext(),x),
DipUtils.dip(getContext(),y),
DipUtils.dip(getContext(),50),paint);
}
/**
*进行设置touch移动
*/
@Override
publicbooleanonTouchEvent(MotionEventevent){
super.onTouchEvent(event);
intaction=event.getAction();
switch(action){
caseMotionEvent.ACTION_DOWN:
caseMotionEvent.ACTION_MOVE:
caseMotionEvent.ACTION_UP:
//获取当前触摸点的x,y坐标
x=(int)event.getX();
y=(int)event.getY();
invalidate();
break;
}
//获取屏幕的宽高
WindowManagermanger=(WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
intwidth=manger.getDefaultDisplay().getWidth();
intheight=manger.getDefaultDisplay().getHeight();
//重新绘制圆,控制小球不会被移除屏幕
if(x>=20&&y>=20&&x<=width-20&&y
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。