圆形随手指移动
来源:互联网 发布:插画培训班 知乎 编辑:程序博客网 时间:2024/05/16 11:53
package com.bwie.playbass;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.AttributeSet;import android.view.Display;import android.view.MotionEvent;import android.view.View;import android.view.Window;import android.view.WindowManager;import java.util.Random;public class MainActivity extends AppCompatActivity { private int screenW;//屏幕宽度 private int screenH;//屏幕高度 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); Display dis=this.getWindowManager().getDefaultDisplay(); //设置全屏 requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); //获取屏幕宽度 screenW=dis.getWidth(); //获取屏幕高度 screenH=dis.getHeight(); setContentView(new BallView(this)); } class BallView extends View{ //定义画笔 private Paint paint; //圆点默认X坐标 private float cx=50; //圆点默认Y坐标 private float cy=50; //定义半径 private int radius=100; //定义画笔颜色 private int colorArray[] ={Color.BLACK,Color.GREEN,Color.YELLOW,Color.RED}; private int paintColor = colorArray[0]; public BallView(Context context) { super(context); //初始化画笔 initPaint(); } private void initPaint() { paint=new Paint(); paint.setAntiAlias(true); paint.setColor(paintColor); } //重写onDraw方法 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //将屏幕设置为白色 canvas.drawColor(Color.WHITE); //修正圆点坐标 revise(); //随机设置画笔颜色 setPainRandomColor(); //绘制小圆作为小球 canvas.drawCircle(cx,cy,radius,paint); } //为画笔设置随机颜色 private void setPainRandomColor() { Random rand=new Random(); int randomIndex = rand.nextInt(colorArray.length); paint.setColor(colorArray[randomIndex]); } //修正圆点坐标 private void revise() { if(cx <= radius){ cx = radius; }else if(cx >= (screenW-radius)){ cx=screenW-radius; } if(cy <= radius){ cy=radius; }else if(cy >= (screenH-radius)){ cy=screenH-radius; } } @Override public boolean onTouchEvent(MotionEvent event) { switch(event.getAction()){ //按下 case MotionEvent.ACTION_DOWN: cx = (int) event.getX(); cy = (int) event.getY(); // 通知重绘 postInvalidate();//该方法会调用onDraw方法,重新绘图 break; //移动 case MotionEvent.ACTION_MOVE: cx=(int)event.getX(); cy=(int)event.getY(); postInvalidate(); break; //抬起 case MotionEvent.ACTION_POINTER_UP: cx=(int)event.getX(); cy=(int)event.getY(); postInvalidate(); break; } return true; } }}
阅读全文
0 0
- 圆形随手指移动
- 自定义随机颜色的圆形小球view随手指移动
- 自定义View重写onTouchCount,实现圆形随手指移动
- UIView随手指的移动
- android 随手指移动划线
- 控件随手指移动动画
- XMG View随手指移动
- 控制控件随手指移动
- Android 随手指移动小球
- 移动端 例子div随手指移动
- 移动端div随手指移动
- ios的视图随手指移动
- 自定义View(板块随手指移动)
- android中view随手指移动
- 自定义view圆并随手指移动
- 最简单圆随手指移动
- 简单进阶随手指移动的View
- android:View随手指的移动而移动
- 理解总线桥
- 014 数理统计概念、卡方分布、t分布
- 2017.11.30实验10_异常处理
- Django 网络框架使用(五)
- 1130 POJ#1376 Robot
- 圆形随手指移动
- 《七点三刻》021期 三新股申购//新浪上线明日头条/12月新规将影响我们生活…
- Android 调用so文件中方法应该注意的 couldn't find "libXXX.so"
- JSON与XML的区别
- Segments POJ
- [LC]686. Repeated String Match
- QT+OpenGL
- 消息“时序”与“一致性”为何这么难
- c#机房合作版---命名规范