简单自定义view拖拽--桃先森
来源:互联网 发布:小工具源码 编辑:程序博客网 时间:2024/06/05 11:00
public class MyView2 extends View { private int integer; private int index; private float x; private float y; public MyView2(Context context) { this(context, null); } public MyView2(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public MyView2(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MyView2, defStyleAttr, 0); int n = a.getIndexCount(); for (int i = 0; i < n; i++) { int attr = a.getIndex(i); switch (attr) { case R.styleable.MyView2_radius2: integer = a.getInteger(attr, 0); break; } } a.recycle(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setColor(Color.RED); Paint paint1 = new Paint(); paint1.setColor(Color.BLUE); paint1.setTextSize(50); Paint paint3 = new Paint(); paint3.setColor(Color.YELLOW); paint3.setStyle(Paint.Style.STROKE); paint3.setStrokeWidth(20); canvas.drawCircle(300, 300, integer, paint); canvas.drawText(index + "", 250, 300, paint1); canvas.drawCircle(300, 300, 150, paint3); } public void setInteger(int radius) { this.integer = radius; } public void setText(int text) { this.index = text; }//以下代码直接拷贝到自定义view中,即可实现拖拽//是不是很吊啊 private int lastX = 0; private int lastY = 0; @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: lastX = (int) event.getRawX(); lastY = (int) event.getRawY(); break; case MotionEvent.ACTION_MOVE: int dx = (int) event.getRawX() - lastX; int dy = (int) event.getRawY() - lastY; int left = getLeft() + dx; int top = getTop() + dy; int right = getRight() + dx; int bottom = getBottom() + dy; layout(left, top, right, bottom); lastX = (int) event.getRawX(); lastY = (int) event.getRawY(); break; case MotionEvent.ACTION_UP: break; default: break; } return true; }}
阅读全文
0 0
- 简单自定义view拖拽--桃先森
- 简单自定义View
- 简单的view 自定义
- 自定义view简单例子
- android简单自定义view
- 自定义view简单流程
- 简单自定义view
- 简单的自定义View
- 自定义View简单示例
- 简单的自定义view
- Android 简单自定义View
- 自定义view简单实现
- Android自定义简单的View
- Android自定义简单的View
- Android自定义简单的View
- 自定义View简单小例子
- 自定义view的简单使用
- 一个简单自定义View控件
- 摄像机
- Eclipse R文件不见
- QML之Flow流式布局
- jQuery 获取 attr() 与 prop() 属性值的方法及区别介绍
- 今日小程序推荐:天天码图-极乐小程序商店
- 简单自定义view拖拽--桃先森
- 安卓 集成微信(一)实现微信登录详解
- jqeury checkbox全选/反选 ,子选项全选,全选选中
- Android Studio下的串口程序开发实战
- ubuntu迁移已安装的软件到新的机器上
- Android 中application 详解
- int、 NSInteger、 NSUInteger、NSNumber之间的区别
- springboot logback-spring配置mybatis日志输出
- Flume对接Kafka的实例