单点触控
来源:互联网 发布:唱吧假唱软件 编辑:程序博客网 时间:2024/06/05 04:01
package com.bw.day01_view.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
public class MyView extends View {
// 画笔
Paint paint = new Paint();
// 画笔颜色
int color = Color.YELLOW;
// 获取屏幕的宽度和高度
private int with;
private int heigh;
// 圆的半径大小
int radius = 0;
float centerx = 0;
float centery = 0;
float padding = 0;
public MyView(Context context) {
super(context);
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
// 测量view的高度和宽度
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
with = MeasureSpec.getSize(widthMeasureSpec);
heigh = MeasureSpec.getSize(heightMeasureSpec);
// 圆心的位置
centerx = with / 2;
centery = heigh / 2;
Log.d("withheigh", with + "==" + heigh);
}
// 画布
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 获取圆的半径
radius = (with - 60) / 2;
// 圆心的位置
// centerx = with / 2;
// centery = heigh / 2;
// 设置画笔的颜色
paint.setColor(color);
// 设置圆的样式
// paint.setStyle(Style.STROKE);
paint.setStyle(Style.FILL);
// 设置圆的边宽
padding = 10;
paint.setStrokeWidth(padding);
// 抗锯齿
paint.setAntiAlias(true);
canvas.drawCircle(centerx, centery, radius, paint);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
super.onLayout(changed, left, top, right, bottom);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:// 手指按下的时候
break;
case MotionEvent.ACTION_MOVE:// 手指移动的时候
//圆的位置
centerx = event.getX();
centery = event.getY();
//重新绘制
postInvalidate();
break;
case MotionEvent.ACTION_UP:// 手指抬起的时候
break;
case MotionEvent.ACTION_CANCEL:// 手指取消的时候
break;
default:
break;
}
return true;
}
}
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
public class MyView extends View {
// 画笔
Paint paint = new Paint();
// 画笔颜色
int color = Color.YELLOW;
// 获取屏幕的宽度和高度
private int with;
private int heigh;
// 圆的半径大小
int radius = 0;
float centerx = 0;
float centery = 0;
float padding = 0;
public MyView(Context context) {
super(context);
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
// 测量view的高度和宽度
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
with = MeasureSpec.getSize(widthMeasureSpec);
heigh = MeasureSpec.getSize(heightMeasureSpec);
// 圆心的位置
centerx = with / 2;
centery = heigh / 2;
Log.d("withheigh", with + "==" + heigh);
}
// 画布
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 获取圆的半径
radius = (with - 60) / 2;
// 圆心的位置
// centerx = with / 2;
// centery = heigh / 2;
// 设置画笔的颜色
paint.setColor(color);
// 设置圆的样式
// paint.setStyle(Style.STROKE);
paint.setStyle(Style.FILL);
// 设置圆的边宽
padding = 10;
paint.setStrokeWidth(padding);
// 抗锯齿
paint.setAntiAlias(true);
canvas.drawCircle(centerx, centery, radius, paint);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
super.onLayout(changed, left, top, right, bottom);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:// 手指按下的时候
break;
case MotionEvent.ACTION_MOVE:// 手指移动的时候
//圆的位置
centerx = event.getX();
centery = event.getY();
//重新绘制
postInvalidate();
break;
case MotionEvent.ACTION_UP:// 手指抬起的时候
break;
case MotionEvent.ACTION_CANCEL:// 手指取消的时候
break;
default:
break;
}
return true;
}
}
0 0
- 单点触控事件、
- 单点触控
- 单点触控
- 单点触控
- cocos2dx单点触控
- 单点触控
- 自定义View(单点触控)
- bVNC单点触控分析
- 多点触控与单点触控
- cocos2d-x3.2 单点触控
- 【unity3D】单点和多点触控
- COCOS学习笔记--单点触控
- 自定义圆加载进度单点触控
- 注册单点触屏
- HTML5触屏设备单点触控事件
- cocos2d-x学习笔记—单点触控
- Android 单点&多点触控实现-----USB接口
- HTML5触摸事件(多点、单点触控)
- Json转Map
- 蓝桥杯:最小乘积(基本型)
- C++——C/C++static关键字
- 《了凡四训》读书总结
- [Q学习]9 Qt事件系统——投递事件
- 单点触控
- db2笔记
- iOS开发------操作通讯录(AddressBook篇)&通讯录UI(AddressBookUI篇)
- 跨域问题
- iOS之深入了解控制器View的加载
- C#三十三 事务
- 【hdu4283】区间动态规划问题
- 小工具-使用java SSL通过url获得访问转为String-http/https
- java20函数的复写override