首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在手指android画布下画圆圈

,可以通过以下步骤实现:

  1. 创建一个自定义的View,并重写其onDraw方法。
  2. 在onDraw方法中,使用Canvas对象绘制圆圈。可以使用drawCircle方法来绘制圆形,传入圆心坐标和半径参数。
  3. 在View的onTouchEvent方法中,监听手指触摸事件。当手指按下时,获取手指触摸的坐标,并调用invalidate方法触发View的重绘。
  4. 在onDraw方法中,根据手指触摸的坐标绘制圆圈。可以使用Paint对象设置圆圈的颜色、边框宽度等属性。
  5. 当手指抬起时,停止绘制圆圈。

以下是一个示例代码:

代码语言:txt
复制
public class CircleView extends View {
    private float x, y; // 手指触摸的坐标
    private boolean isTouching = false; // 是否正在触摸

    public CircleView(Context context) {
        super(context);
    }

    public CircleView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        if (isTouching) {
            Paint paint = new Paint();
            paint.setColor(Color.RED);
            paint.setStyle(Paint.Style.STROKE);
            paint.setStrokeWidth(5);

            canvas.drawCircle(x, y, 50, paint);
        }
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                isTouching = true;
                x = event.getX();
                y = event.getY();
                invalidate();
                break;
            case MotionEvent.ACTION_MOVE:
                x = event.getX();
                y = event.getY();
                invalidate();
                break;
            case MotionEvent.ACTION_UP:
                isTouching = false;
                invalidate();
                break;
        }
        return true;
    }
}

在使用这个自定义View时,可以将其添加到布局文件中,并设置其宽高等属性。例如:

代码语言:txt
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.example.CircleView
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

这样,当手指在该View上触摸时,就会在手指触摸的位置绘制一个红色的圆圈。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用Python多个圆圈代码

Python中,我们可以使用turtle库来绘制各种形状,包括圆圈。这是一个相当基本的问题,但是对于新手程序员来说,它可能会很有用。...在这篇文章中,我们将向你展示如何使用Python的turtle库多个圆圈。一、绘制单个圆圈多个圆圈之前,我们需要先学会如何画一个圆圈。...二、绘制多个圆圈绘制多个圆圈的方法也很简单。我们只需要在代码中使用for循环来反复绘制圆形即可。...三、生成随机颜色的圆圈我们也可以为每个圆形生成随机颜色。Python中,我们可以使用random库来生成随机颜色值。...四、结论在这篇文章中,我们向您展示了如何使用Python的turtle库多个圆圈。我们从简单的圆开始,一步一步地向您展示了如何多个圆形,并为您提供了Python中生成随机颜色的方法。

55010
  • Android画中(PIP)模式使用

    》有介绍过悬浮窗的使用方式,而到了Android8.0时推出来画中模式,就是让当前的Activity缩小后显示在其它Activity的上方,使用起来也非常的简单,本篇我们就来试试Android8.0后推出的画中模式...实现效果 代码实现 微卡智享 画中设置 manifests中的activity中加入画中的配置 <activity android:name=".MainActivity...判断是否能进入画中模式 因为我项目中创建的minsdk是27(android8.1),所以就没再加入判断当前SDK的版本,如果是更小版本可以加入这个判断。...Android 12 添加了 setSeamlessResizeEnabled 标志,画中窗口中调整非视频内容的大小时,该标志可提供更流畅的交替淡变动画。...以前,画中窗口中调整非视频内容的大小时会产生烦人的视觉伪影。为了向后兼容,默认情况下,将 setSeamlessResizeEnabled 标志设置为 true。

    2.4K10

    Android 实现 视频 转 字符效果

    我们下面说一下具体的实现步骤, 视频取帧 对帧图片进行字符转换 对获取到的字符合成视频 我们分开一步一步的讲: 视频取帧 视频取帧的整个功能最麻烦的一步,目前Android视频取帧的方法有好几种。...后来别的大佬博客里面找到一篇使用原生接口MediaCodec硬解码视频的文章,用该方法取帧完美解决对不同机型的兼容性问题,因为使用的原生接口速度也是可以保证的。...然后我们可以对 Image 类进行转换成 Bitmap,再对 Bimap 的进行像素转换成字符数组再绘制成图片保存作为转换字符视频 的其中一帧。...具体实现,首先我们解码的过程的中需要获取设备是否支持 COLOR_FormatYUV420Flexible 帧格式,然后初始化几个重要的对象: ......字符转换的全部内容大概都到这里了,谢谢大家阅读,喜欢的话可以给个赞。

    83020

    Android 实现 图片 转 字符 效果

    字符稍微密集了一点,不过放大来看大家应该能够看到确确实实是 字符。...Android 端实现 Android开发中对图片的操作,显示一般都是通过Bitmap进行的,我们可以通过图片路径获取Bitmap对象: static public Bitmap getBitmapByUri...根据 字符 绘制 Bitmap 上面说过图片的操作Android中一般都在Bitmap进行的,所以我们要想绘制一张新的图片,那么就创建一个新的Bitmap对象,绘制的事情交给万能的画布就好了,画布带有文字绘制接口完美的符合我们需求...Uri.fromFile(photo); mediaScanIntent.setData(contentUri); context.sendBroadcast(mediaScanIntent); 以上就是图片转成字符的全部代码与讲解...乍一看好像用处不大,但是基于这个功能我们可以做短视频转换字符视频。 奉上完整的源码,觉得有趣的请star一下呗。

    1.3K10

    OpenCV里用polylines多边形

    OpenCV进行图像处理时,有时候需要标记一些多边形物体,那么就需要使用函数polylines来画出来。...先来看看这个函数polylines画出来的图,如下:OpenCV进行图像处理时,有时候需要标记一些多边形物体,那么就需要使用函数polylines来画出来。...先来看看这个函数polylines画出来的图,如下:OpenCV进行图像处理时,有时候需要标记一些多边形物体,那么就需要使用函数polylines来画出来。...先来看看这个函数polylines画出来的图,如下:OpenCV进行图像处理时,有时候需要标记一些多边形物体,那么就需要使用函数polylines来画出来。...先来看看这个函数polylines画出来的图,如下:OpenCV进行图像处理时,有时候需要标记一些多边形物体,那么就需要使用函数polylines来画出来。

    1.3K20

    自定义View学习——仿QQ消息气泡拖拽黏连删除

    参考博客:仿 QQ 未读消息气泡,可拖拽删除,粘连效果 参考博客中的实现思路: 首先我们需要两个圆,一个是原点不需要跟随手指的圆,一个是跟随手指的圆,当用户开始点击时,绘制跟随手指的圆和圆上的未读消息数量...用户松开手指时,同样对两圆之间的距离进行判断,如在最远距离内,被拖动的圆自行回到原点,如超过最远距离,则在手指释放位置播放删除动画。 废话不多说,先看一下效果图: ?...注意:使用时需要在所有父布局中加入android:clipChildren="false"属性,使气泡可以父布局中拖动。...> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android...*/ float textSize; /** * 用户设定的字体颜色 */ int textColor; /** * 用户设定的圆圈颜色

    1.5K30

    Android原生绘图之一起个表

    零、前言 前几天介绍了一大堆Android的Canvas,Paint,Path的API,接下来将是灵活地使用他们 今天带来的是一个手表的绘制,经过本篇的洗礼,相信你会对Canvas的图层概念有更深刻的理解...onDraw里绘制高效些,区别就像准备一车砖盖房子和造一块才砖盖一下房子 //成员变量 private Picture mPictureGrid;//网格Canvas元件 private Point...最后完之后,图层全合并到root ?...绘制碎圆5.png ---- 4.绘制小点 60个点(小线),每逢5变长,也就是直线,每次将画布旋转360/60=6° private void drawDot(Canvas canvas...表.gif ok,完结散花(分析图画的真要命...) ---- 后记:捷文规范 1.本文成长记录及勘误表 项目源码 日期 备注 V0.1--无 2018-11-8 Android原生绘图之一起个表

    81231

    Python中使用Matplotlib多个绘图,so easy!

    本文中,我们将演示如何使用Matplotlib库绘制多个绘图。 绘制单个绘图 展示如何绘制多个绘图之前,先浏览一个演示如何使用Matplotlib绘制单个绘图的示例,以确保掌握基本原理。...如果不使用Jupyter笔记本,只需添加plt.show()开始绘制图的点之后。 绘制多个绘图 可以绘制多个图了。...2.执行subplot()命令之后,只需使用pyplot模块调用要绘制的相应函数或图表类型。例如,下面的脚本使用plot()方法制作折线图。...输出中,可以看到与网格的行和列相对应的列表的列表,还可以看到空轴,用黄色突出显示了列表以及网格尺寸。 下一步是在这些空图表中绘制图。...下面的脚本使用subplot()函数2行3列中绘制六个折线图。 就这些! 注:本文学习整理自wellsr.com。

    7.3K11

    Android画中(PIP)进阶---Action按钮的使用

    ——《微卡智享》 本文长度为1839字,预计阅读5分钟 前言 上一篇《Android画中(PIP)模式使用》介绍了画中的使用,今天这篇来讲讲Action按钮的使用,主要是广播方式更新UI及Android...的SDK版本,是因为上一篇中没加入这个,8.0的模拟器中运行正常,但是真机Android 12就会直接崩溃了,原因是Android 12 声明特定 PendingIntent 对象是否可变,请分别使用...如果您的应用试图不设置任何可变标志的情况下创建 PendingIntent 对象,系统会抛出 IllegalArgumentException。...val rational = Rational(5, 11) builder.setAspectRatio(rational) //Android12下加入的画中配置...上一篇中使用onPictureInPictureModeChanged函数来判断时入画中模式后将button按钮隐藏,回到全屏模式后再显示出来,现在在这个函数中再加入进入画中时注册广播接收,关闭画中时就释放广播接收

    1.1K10

    android自定义view用path长方形

    这次主要是练习一下Android的自定义view和path的相关使用,所以做了一个简单的demo:自定义一个view,并用path在上面画一个可以动态改变圆角大小的长方形。...dimension" </attr </declare-styleable </resources 其中round_position指的是圆角的位置,这里属性类型定为flag(位或运算)这样就可以布局中同时使用多个属性了...布局中使用自定义view <wjc.myrecyclerview.CustomView android:id="@+id/custom_view" android:layout_width="200dp..." android:layout_height="200dp" android:layout_margin="100dp" app:layout_constraintLeft_toLeftOf="parent...parent" app:round_position="left-bottom|right-bottom|right-top|left-top" / 这样就完成了一个简单的自定义可调整圆角的长方形,MainActivity

    59820

    Mac下使用MindMaster思维导图(脑图)

    功能方面相同点较多,比如插入节点、关系线、标注。拖拽操作、内置图标、备注、幻灯片演示、甘特图、自动排版、云存储等功能。并且同样支持Windows、mac和Linux系统。     ...分析差价悬殊的原因,应该是XMind作为老牌产品,国内享用更高的知名度,而作为思维导图新秀的Mindmaster,很少人听说,但是其功能和价格优势明显,性价比显然是最高的。...第二步:确立二级主题同样是关键的一步,需要我们大脑里反复构思。比如在做面试分析时,可以将自己重点关注的就业大方向记录下来,以便进一步展开分析。     ...看着自己的思维导图画布中,就要想着如何将其保存或导出。MindMaster软件,你可以导出诸如图片、Office、PDF等多种格式

    1.7K40

    Cocos Creator 里个炫酷的雷达图

    同时不少游戏中都有雷达图的身影,可以很直观地展示并对比一些数据。 例如王者荣耀中的对战资料中就用到了: ? 网上偷的图(侵删) ?...那么本篇文章中,皮皮就来分享下在 Cocos Creator 中如何利用 Graphics 组件来绘制炫酷的雷达图~ 文中会对原始代码进行一定的削减以保证阅读体验。...Graphics 组件 我们正式开始制作雷达图之前,让我们先来大概了解一下 Cocos Creator 引擎中的 Graphics 组件。...网格 捋一捋 先来看看一个标准的雷达图有啥特点: ? 网上偷的图(侵删) ?发现了吗?...数据 捋一捋 编写画线逻辑之前,先确定一下我们需要的数据结构: 数值数组(必须,小数形式的比例,至少包含 3 个值) 线的宽度(可选,不指定则使用默认值) 线的颜色(可选,不指定则使用默认值) 填充的颜色

    1.8K20

    iOS 上用 Shader 实现 图片 转 字符 效果~~

    那天朋友圈问了一下如何通过 OpenGL Shader 实现同样效果,没想到引来了大神的关注。 于是就有了如下这篇文章,转载自大佬的实现,文章末尾有源码地址。 效果 实际效果如下: ? ?...实现原理 1.1 RGB 转灰度值 首先,我们知道 OpenGL 中颜色有4个通道RGBA,对于一般图片 A = 1.0。那还有3个通道需要处理 RGB。...而我们的字符使用 1 个字符表示 1 块颜色,即我们需要将 RGB 三个通道进行某种处理(3个值),让它们变为1个值,我们才能对应某 1 个字符。 上面所说的某种处理就是:RGB 值转换为灰度值。...10*10 比较难,下面我用 5*5 的像素点来解释。 ? 如果用 5*5 的像素点来表示1个灰度值,我们需要用25个点的灰度值算一个平均,然后再用这个灰度值去填充25个像素格子。...Demo 地址 对于如何在 视频 中实现 字符 效果,就变得很简单了,直接复用源码里面的 filter 就好了。

    1.1K20

    D4-Android绘图之和我一起箭头

    零、前言 箭头?逗我吧,箭头有什么好画的,其中还是有东西讲的,算是LogicCanvas向量绘制的引入吧 数学老师:“安逸的你们,是否已经忘记了曾经被向量支配的恐惧?”...(开玩笑的) 案例代码自定义控件时的Ondraw里 绘图部分基于我的LogicCanvas绘图库:基础使用在此, 喜欢的话可以到github上看看,顺便给个star 效果图 效果图.png...有点意思,明明是直线,你偏说是向量干嘛---- 二、箭头: 基于上面两点画个箭头应该不在话下吧,封个方法出来,专门给向量加箭头 /** * 给向量加个箭头...纯属好看...shapeL.mang - 155);//另一侧箭头 draw(cap, cap2);//绘制箭头 } 使用: cap(a); 箭头.png 你也许会说:好吧,你说向量就向量吧,箭头完了

    1.1K20
    领券