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
Xavi_zhang
关注 关注
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Android使用学习之绘图(Canvas,Paint)与手势感应及其应用(乒乓球小游戏)
dingbbin的专栏
07-11 3656
作为一个没有学习Android的菜鸟,最近一直在工作之外努力地学习的Android的使用。这周看了下Android的绘图,主要是Canvas,Paint等,感觉需要实践下,就想整一个乒乓球的游戏,算是巩固学的知识。 首先,需要了解下Android的绘图需要掌握的常用类,包括Canvas,就像一个画板一样,所有的东西都是在其上画的;Paint就是画笔,用其可以画各种基本图形和文字。
canvas绘图任意矩形、多边形
10-19
canvas鼠标拖动绘制任意矩形、多边形;在index.html页面中,根据drawType来绘制形状,矩形:drawType = 'rect'; 多边形:drawType =polygon
Android 自定义控件的 拖拽、移动 实现 方法
liyongjin2009的专栏
04-17 5187
整个屏幕是一个继承自View或SurfaceView的类。它通过onDraw方法来画上面的所有的要显示的对象。一般在这个方法中,会有一些标示显示对象的位置、大小、图形、图片等一切和显示有关的属性,在onDraw方法中根据这些属性重绘所有对象。因此,必须有这样一种机制:在每一个和显示有关的属性更改后,必须马上被调用onDraw,重新绘制所有对象,将更改实时显示给用户。这种机制有两种实现方法:1.采用UI线程,以一定周期使onDraw方法得到调用。2.采用消息机制,当和显示有关的属性改变时,使onDra
Android View拖拽/拖放DragAndDrop自定义View.DragShadowBuilder,Kotlin(2)
Zhang Phil
10-24 918
Android DynamicGrid:拖曳交换位置Android DynamicGrid是一个第三方开源项目,DynamicGrid在github上的项目主页是:https://github.com/askerov/DynamicGrid它实现在一个网格布局内,拖曳任意子view实现动态的交换位置,这很类似手机的桌面,手机桌面的图标,均可自由拖曳实现摆放位置的交换,如动图所示:_android 拖拽交换位置。Android View拖拽startDragAndDrop,Kotlin-CSDN博客。
Android 自定义随意拖拽布局
最新发布
leveretz的博客
11-09 188
Android 自定义随意拖拽布局
Canvas自定义画笔,绘制四边形
weixin_43924261的博客
08-30 956
四边形绘制之后,显示每条线的中垂线;点击四边形内部,显示顶点并可移动四边形拖动顶点,可拉伸四边形 <template> <div> <!-- 画布 --> <canvas id="myCanvas" width="960" height="540"> </canvas> <!-- 重新绘制按钮 --> <Button @click="creatDraw">重新绘制</Bu
androidCanvas制作一个拖动改变任意形状四边形,并填充
08-25
自定义view,使用Canvas制作一个拖动改变任意形状四边形,并填充颜色。。
Android使用学习之画图(Canvas,Paint)与手势感应及其应用(乒乓球小游戏)
aofan9566的博客
01-25 209
作为一个没有学习Android的菜鸟,近期一直在工作之外努力地学习的Android的使用。这周看了下Android的画图。主要是Canvas,Paint等,感觉须要实践下。下午正好有空,就想整一个乒乓球的游戏,算是巩固学的知识。 首先,须要了解下Android的画图须要掌握的经常使用类。包含Canvas,就像一个画板一样,全部的东西都是在其上画的。Paint就是画笔。用其能够画...
android view 绘制圆点,android 自定义View,根据手势使用Canvas绘制矩形和圆点
weixin_39609887的博客
05-27 559
** 前言 :因项目需要,需要手势来绘制矩形和圆点,所以直接使用画布来操作更合适不过了。**使用到的方法大致有这样:Bitmap pointBitmap;private Paint mPaint;private Path mPath;private Rect rect = new Rect(0, 0, 0, 0);//手动绘制矩形onTouchEvent1. 直接上代码,首先新建一个activit...
平行四边形效果实现
02-08
虽然shape元素不直接支持平行四边形,但可以通过定义一个矩形并应用变换来模拟。例如,我们可以定义一个矩形,然后在代码中加载这个资源,并应用相应的变换矩阵。 ```xml <shape xmlns:android=...
css实现平行四边形
09-20
代码里面有两种方法:一种是使用:after和:before,另一种是写了三个span,第一个span是实现左边直角三角形,第二个span实现正方形,第三个span实现右边三角形
vue之canvas元素拖动改变形状
01-02
vue之canvas元素拖动改变形状 vue之canvas元素拖动改变形状
Android Canvas实现图片阴影(影子)效果
03-16
然后定义Canvas绘制对象,调用mutate方法,如果不调用mutate方法,则原图也会被改变,因为调用的资源是同一个,所有对象是共享状态的。设置画布颜色,图像平移为了刚好在原图后形成影子效果。 运行环境:Java/...
android-openGL-canvas一个Android库,提供使用openGL画布在SurfaceView或TextureView上绘制内容的视图
02-03
项目应用功能提供一个类似Android Canvas类的使用OpenGL来实现实现的canvasGL。可以像传统自定义View那样直接继承GLViews,再使用这个canvas替换需要的东西。提供类似GPUImage里的Filter的API,可以在使用画布GL画...
Android基础入门教程——3.8 Gestures(手势)
热门推荐
Coder-Pig的猪栏
07-26 3万+
Android基础入门教程——3.8 Gestures(手势) 本节引言: 1.Android中手势交互的执行顺序 2.GestureListener详解: 3.简单的例子:下滑关闭Activity,上滑启动新的Activity 4.手势添加与识别: 5.手势添加示例: 6.手势识别示例: 本节小结:
Android自定义手势
N的专栏
07-11 1755
我们大家都知道android可以用手势来解锁,那么既然利用手势既然能进行解锁等操作,那么我们游戏开发中,更是可以加入这一亮点了,比如在游戏中我画个圆形执行换背景操作,画个X表示退出游戏等等,等等、是不是感觉很有意思了?好的,下面就开始进入讲解! 首先本篇主要学习两点: 1. 如何创建输入法手势、删除输入法手势、从SD卡中读取出手势文件! 2.当输入法手势创建后,如何来匹配出我们的自定
Android 实现一个可以拖动大小,移动区域的矩形框
Cat的专栏
07-07 1万+
这个标题好难取啊,真的不太好用文字表达这个意思。还是来张图吧。 就像这样的一个矩形框,是可以通过拖动边角来改变大小的,同时,拖动非边角的区域,还可以移动这个矩形框。 嗯,想实现的就是这样的一个矩形框。(当然是不包括这只猫的,蟹蟹~) 对了,图中的矩形框的4个顶角旁边的线条加粗了,这个也不去实现了。 先放出我的实现效果,图片基本看不出来,反正你要想象它是可以拖动改变大小,并且可以...
Android canvas
zenmela2011的专栏
03-13 1万+
1.Canvas Canvas一个画布,可以在这个画布上进行各种绘图操作。 在Android中,想要获得一个Canvas对象主要有三种方法: ①继承一个View,并重写onDraw()方法。View的Canvas对象会被当做参数传递过来,在这个Canvas上进行的操作会直接反映在View中。 ②调用SurfaceHolder.lockCanvas()返回一个Canvas对象。 ③通过构造方法自己创建一个Canvas对象。 Bitmap bitmap = Bitmap.createBitmap(1
canvas中的拖拽、缩放、旋转 (上) —— 数学知识准备
weixin_33896069的博客
02-01 733
写在前面 本文首发于公众号:符合预期的CoyPan 最近做了一个移动端活动页的需求,大概就是diy一个页面。用户可以对物料进行拖动、缩放、旋转,来达到diy的目的。用DOM来实现是不现实的,我采用了canvas来实现和用户的交互。开发过程中,涉及到了canvas中对物料元素的拖动、缩放、旋转等。本文将详细介绍在不使用任何第三方库的情况下...
如何实现用canvas工具,画一个由直线和一个半圆构成的闭合形状,并填充颜色为蓝色
06-06
可以按照以下步骤实现: 1. 首先创建一个 canvas 元素,并获取它的上下文对象。 ``` const canvas = document....运行代码后,就可以在页面上看到一个闭合的形状,由一条直线和一个半圆组成,填充颜色为蓝色。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Android 控制第三方音乐播放器 3525
  • Android Socket 连接设备接收H264裸流数据并解码播放 Demo 2668
  • Android Canvas制作一个可以拖动改变任意形状的四边形效果,并填充颜色 2080
  • IntelliJ IDEA Console 控制台输出中文乱码终极解决 1928
  • 关于Google上架短信与通话记录权限的一深坑 1528

分类专栏

  • 问题记录 5篇

最新评论

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

    qq_53215946: 终于找到了我想要的表情包,有源码吗?谢谢

  • 关于Google上架短信与通话记录权限的一深坑

    前进的牛: 我申述了回的邮件和你的差不多,商品详情也写了,请问下你最后核心功能是选的 已关联设备的配套应用吗?

  • Android Socket 连接设备接收H264裸流数据并解码播放 Demo

    Xavi_zhang: 裸流数据每家公司定义的格式都不一样,根据自己需求来修改

  • Android Socket 连接设备接收H264裸流数据并解码播放 Demo

    Xavi_zhang: 你得让一个设备作为Socket服务端,这里的demo只是客户端,服务端得自行开发,让客户端去连接服务端 IP ,服务端再打包裸流数据通过socket发送给客户端。

  • Android Socket 连接设备接收H264裸流数据并解码播放 Demo

    码跑疯了: 我下载并编译出来了。我两个手机处理同一局域网下,IP分别怎么设?怎么验证H264裸流是可以播放的呢?裸流端要怎么发上来? 小白中的小白。

大家在看

  • 精美悬浮的岛屿动态错误页特效404单页HTML源码 574
  • 下雪了动态特效404单页HTML源码 561
  • 【LuBase低代码框架】如何自定义下拉选字段数据源 61
  • 全球最受欢迎的项目管理平台涉嫌数据泄露 290
  • # Redis 入门到精通(六)-- redis 事务 1484

最新文章

  • Android 控制第三方音乐播放器
  • 关于Google上架短信与通话记录权限的一深坑
  • Android Socket 连接设备接收H264裸流数据并解码播放 Demo
2022年2篇
2020年3篇
2018年2篇
2013年1篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

PHP网站源码大鹏百度网站优化双龙推广网站东莞SEO按天计费南澳网站搭建平湖百姓网标王推广荷坳百度关键词包年推广南联百姓网标王推广宝安百度竞价包年推广龙岗品牌网站设计坂田百度关键词包年推广南澳网站推广宝安网站定制坪地网站搭建福田如何制作网站松岗百度爱采购民治百姓网标王罗湖百搜标王龙岗模板制作双龙营销网站龙岗优化大芬seo福永百度seo沙井关键词排名包年推广宝安网站改版横岗设计公司网站坪山网络广告推广民治百度竞价包年推广丹竹头网站推广工具布吉英文网站建设宝安网络广告推广歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化