自定义可移动view
来源:互联网 发布:java学生成绩管理系统 编辑:程序博客网 时间:2024/04/30 15:43
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;public class CustomView extends View {private static final int WIDTH = 40;private Rect rect = new Rect(0, 0, WIDTH, WIDTH);//绘制矩形的区域private int deltaX,deltaY;//点击位置和图形边界的偏移量private static Paint paint = new Paint();//画笔public CustomView(Context context, AttributeSet attrs) {super(context, attrs);paint = new Paint();paint.setColor(Color.RED);//填充红色}@Overrideprotected void onDraw(Canvas canvas) {canvas.drawRect(rect, paint);//画矩形}@Overridepublic boolean onTouchEvent (MotionEvent event) {int x = (int) event.getX();int y = (int) event.getY();switch(event.getAction()) {case MotionEvent.ACTION_DOWN:if(!rect.contains(x, y)) {return false;//没有在矩形上点击,不处理触摸消息}deltaX = x - rect.left;deltaY = y - rect.top;break;case MotionEvent.ACTION_MOVE:case MotionEvent.ACTION_UP:Rect old = new Rect(rect);//更新矩形的位置rect.left = x - deltaX;rect.top = y - deltaY;rect.right = rect.left + WIDTH;rect.bottom = rect.top + WIDTH;old.union(rect);//要刷新的区域,求新矩形区域与旧矩形区域的并集invalidate(old);//出于效率考虑,设定脏区域,只进行局部刷新,不是刷新整个viewbreak;}return true;//处理了触摸消息,消息不再传递}}
0 0
- 自定义可移动view
- 自定义可圆形移动的view
- 可移动的悬浮按钮(自定义View)
- 自定义view,可拖动
- 可拖动自定义view
- Android 自定义View可拖动移动位置及边缘拉伸放大缩(转)
- Android 自定义View可拖动移动位置及边缘拉伸放大缩小 - Livingstone
- android自定义view实现可自由放大缩小和移动的imageView
- Android 自定义View可拖动移动位置及边缘拉伸放大缩小
- c#自定义窗口可移动
- 自定义View-放大加载-移动
- 自定义跟随手指移动view
- 自定义view 小球的移动
- iOS 可移动View的实现
- view 图像可鼠标按住移动
- 自定义可水平滚动的View
- 自定义View绘制圆,可拖动
- 自定义ViewGroup,子View可对换位置
- WiFi P2P, WiFi Direct, WFD
- Vagrant用法总结
- nyoj35 表达式求值(栈)
- 第9周—项目3(1)建立广义表算法库
- 树形DP入门(POJ2342)
- 自定义可移动view
- 一丢銩的自我批(kua)评(jiang)
- openfire因为网络不稳定而造成消息丢失的解决方案
- 图像缩放之双线性插值
- week8---10月28日 div 布局
- 学习方向
- Android进阶之路——AIDL
- Android Activity界面跳转动画讲解
- C++11 新特性:Lambda 表达式