Android Canvas制作一个可以拖动改变任意形状的四边形效果,并填充颜色

先上效果图:

思路:

1. 定义四个点, 初始化四个点的坐标,绘制点。

2. 绘制 直线,把四个点连接起来。

3. 根据四个点的坐标绘制直线路径,填充颜色。

4. 判断手势是否点中四个点的坐标范围内。

5. 手势移动时重绘当前 View 。

代码:

自定义 View ,定义四个点:

public class DotView extends View {
    //定义四个点的坐标
    private float dot1_x;
    private float dot1_y;
    private float dot2_x;
    private float dot2_y;
    private float dot3_x;
    private float dot3_y;
    private float dot4_x;
    private float dot4_y;
    //触摸事件的坐标
    private float event_x;
    private float event_y;
    //四点坐标的数组
    private float[] pts;
    //控件的宽和高
    private float v_width;
    private float v_height;
    //手势选中的点 标记
    private int select_index=0;

初始化四个点的默认坐标:

 @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        //初始化四个点的默认坐标
        v_width = this.getWidth(); //获取当前View的宽
        v_height = this.getHeight(); //获取当前View的高
        dot1_x=v_width/2-250;  //点1 x轴坐标
        dot1_y=v_height/2+250; //点1 y轴坐标
        d
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值