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

用java在Android中点击某物后,如何绘制任意尺寸的矩形?

在Android中,可以通过自定义View来实现点击某物后绘制任意尺寸的矩形。以下是一个实现的示例:

  1. 创建一个自定义View类,继承自View:
代码语言:txt
复制
public class CustomView extends View {
    private Paint paint;
    private Rect rect;

    public CustomView(Context context) {
        super(context);
        init();
    }

    public CustomView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    private void init() {
        paint = new Paint();
        paint.setColor(Color.RED);
        paint.setStyle(Paint.Style.FILL);
        rect = new Rect();
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawRect(rect, paint);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            // 获取点击位置的坐标
            int x = (int) event.getX();
            int y = (int) event.getY();
            // 设置矩形的位置和尺寸
            rect.left = x - 100; // 矩形左边距离点击位置左边100个像素
            rect.top = y - 100; // 矩形上边距离点击位置上边100个像素
            rect.right = x + 100; // 矩形右边距离点击位置右边100个像素
            rect.bottom = y + 100; // 矩形下边距离点击位置下边100个像素
            // 重绘View
            invalidate();
        }
        return true;
    }
}
  1. 在布局文件中使用自定义View:
代码语言:txt
复制
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity">

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

</LinearLayout>

在上述示例中,我们创建了一个CustomView类,重写了onDraw方法,在onTouchEvent方法中处理点击事件。当用户点击屏幕时,会获取点击位置的坐标,并根据坐标设置矩形的位置和尺寸,然后调用invalidate方法触发重绘,从而在屏幕上绘制出指定尺寸的矩形。

推荐的腾讯云相关产品:无

参考链接:无

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

相关·内容

自定义View实战--实现一个清新美观的加载按钮

这个时候的 rect 尺寸就是相对应的文字尺寸加上相对应方向上的 padding 值,这些 padding 值通过在 attrs.xml 中自定义属性然后在布局文件中赋予。...测量是在 onMeasure() 方法中进行,而绘制就是在 onDraw() 方法中进行的,这是 Android 开发者都知道的事情。...,借助于 Path 的力量 Android 绘制图形离不开 Canvas,Canvas 可以直接绘制 直线、矩形、圆、椭圆,但是 LoadButton 的形态 1 怎么绘制呢?...这是个中间矩形从初始值变为 0 的过程,我们用 rectWidth 表示这个矩形的宽度值,因为在 onDraw() 方法中,LoadButton 尺寸确定,所以我们很容易得到它的中心点,所以我们可以中心点坐标为参考坐标...在 Successed 或者 Error 状态下点击按钮,将通过回调对象,通知调用者点击事件的发生。 我们在 LoadButton 的构造方法中设置这样的内部的 OnClickListenner。

60420

教你步步为营掌握自定义 View

假如View所在的ViewGroup中的子View减少了,View因此获得了更大的空间,View如何及时有效地利用这些空间,改变自己的绘制?...通俗讲,在Android中,一个用户与一个应用的交互,其实就是与这个应用中的许许多多的View的交互,这些View既可以是简单的View,也可以是若干View组合而成的一个复合View。...以上,View的三个基本知识点,我们都了解了,即View 的位置如何确定,大小如何确定以及如何绘制自己。这都是默认的View类中为我们准备好的。...在该方法中,我们的View想要的尺寸当然就是与表盘一样大的尺寸,这样可以保证我们的View有最佳的展示,可是如果ViewGroup给的尺寸比较小,我们就根据表盘图片的尺寸,进行适当的按比例缩放。...注意,这里我们没有直接使用ViewGroup给我们的较小的尺寸,而是对我们的表盘图片的宽高进行相同比例的缩放后,设置的尺寸,这样的好处是,可以防止表盘图片绘制时的拉伸或者挤压变形。

79860
  • Android小知识10则(下)

    Android小知识10则(上) github传送门 注: 在目录中点击可以跳转到具体代码页 目录 Chronometer和CountDownTimer计时器 Chronometer的使用 CountDownTimer...的使用 正则表达式 动态数组 shape绘制 矩形 椭圆 线 环 用shape绘制SeekBar 最后 ---- Chronometer和CountDownTimer计时器 Android也是提供了计时器的...看xml中的android:format="%s", 这就是代表用默认的格式....正则表达式 规则 只要知道了规则, 几乎没有正则表达式匹配不了的串(手动滑稽). 这里有个推荐的网站. 里面写的很细. 接下来展示如何在Android中实现的...., 改动改动体验下. ---- shape绘制 在没有UI设计师的时候, 或者是想简单看下效果的时候, 用shape进行快速绘制是极好的!

    79340

    Android-2D绘图

    可以定义在res/values/colors.xml中,也可以直接用系统提供的颜色值,更可通知Color.parseColor()来设置颜色。...在Android中,绘图操作一般是通过Paint画笔在Canvas画布上进行绘制的,最后将Canvas画布呈现给用户。绘图之前需要首先设置Paint画笔,Android系统中通过Paint类来实现。...在Android系统中,Canvas类提供了很多常用的图形,例如直线、矩形、圆形、文字等等。同时,我们也可以对画布设置颜色、尺寸等。Canvas画布是主要的绘图场所。...---- drawPath方法:绘制任意多边形 【功能说明】该方法用于在画布上绘制任意多边形,通过指定Path对象来实现。在Path对象中规划了多边形的路径信息。...【实例演示】下面通过代码来演示如何在画布上绘制任意多边形。

    5.1K20

    Android自定义系列——6.PorterDuffXfermode

    当我们执行了canvas.drawRect(r, r, r * 2.7f, r * 2.7f, paint)之后,Android会在所画矩形的位置用蓝色的画笔绘制一个蓝色的矩形,此时整个矩形内部所有的像素颜色值的...5.在绘制完成后,我们调用paint.setXfermode(null)将画笔去除Xfermode。 具体分析一下白色矩形出现的原因。...当我们调用canvas.drawRect()绘制矩形时,画笔Paint已经设置Xfermode的值为PorterDuff.Mode.CLEAR,此时Android首先是在内存中绘制了这么一个矩形,所绘制的图形中的像素称作源像素...(source,简称src),所绘制的矩形在Canvas中对应位置的矩形内的像素称作目标像素(destination,简称dst)。...在本例中,我们在新建的layer上面绘制完成后,其实矩形区域的目标颜色也还是被重置为透明色(0,0,0,0)了,这样整个新建layer只有圆的3/4不是透明的,其余像素全是透明的,然后我们调用canvas.restoreToCount

    99820

    Kotlin 第一弹:自定义 ViewGroup 实现流式标签控件

    测量尺寸 我们大多都知道,自定义一个 View 需要测量、布局、绘制三个流程。而我个人觉得这三个流程中,测量是最让初学者头痛的问题。...针对这种情况,其实我们用不着处理,因为 parent 在子 View 的 onMeasure() 中传递的尺寸规格里面就包含了建议尺寸,而这个尺寸是精确的,所以我们只需要在 onMeasure() 方法的最后调用...绘制 自定义 View 中绘制相关的方法是 onDraw(),但在 TagView 中它并不需要绘制特殊的界面效果,所以我们可以不理它。...在 Kotlin 中构造函数与 Java 的构造方法也有不同。大家可以仔细感受一下。...Tag 的图形可以由 Path 实现。所以,我们可以在 onSizeChange() 方法中确定这个 Path。然后在 onDraw() 方法中绘制。

    1.4K20

    常用控件之Button详解

    前言 小伙伴们肯定都有在玩儿一些游戏,比如和平精英,在界面上展示的名字,其实就是Android中咱们上一篇介绍到的TextView控件。..., RadioButton, Switch, ToggleButton 二、典型点击用法如下 Button是Android中一个非常简单的控件,在我们平时的项目中,可以说是非常的常见,使用率也是相当高。...三、按钮样式设置 每个按钮都使用系统的默认按钮背景进行样式化,如果您对默认按钮样式不满意,并且希望对其进行自定义以匹配应用程序的设计,那么您可以用可绘制的状态列表替换按钮的背景图像。...状态列表可绘制是在XML中定义的可绘制资源,它根据按钮的当前状态更改其图像。一旦定义了一个可以用XML绘制的状态列表,就可以将它应用到具有 android:background属性的按钮上。...方法二:在Java代码里给 button设置背景色( setBackgroundColor中以下两种方法任意一种即可) btnClickMe.setBackgroundColor(getResources

    1.4K10

    不再切图!CSS实现渐变提示框(tooltips)

    通常提示框都是纯色的,比如下面这个 ? 这类布局实现还不算复杂,可以用一个圆角矩形和一个小三角拼接形成,设置相同的颜色就可以了 ?...: inset 可以实现自适应圆角矩形,但是无法实现下方的小尖角 如何解决这个问题呢?...svg 是可以自适应的,在改变尺寸的情况下不会变形(注意观察圆角),如下 ?...在 canvas 中,相对于 CSS 来说, 这类图形简直就是小儿科,只需要使用 lineTo 和 arc 两个指令就可以绘制了。...现在总结一下要点: 可以用多个容器重叠配合 clip-path 实现复杂的自适应效果 在使用 CSS 渐变绘制图形时,相同的形状充分利用平铺特性 svg 基本形状支持百分比尺寸,用作背景同样有效,可以使用多张背景来组合

    1.8K10

    面向前端的 Lottie & AE 动画手把手入门教学

    预览: 动画和编辑实时预览/编辑窗口 工具: 各种工具的集合, 如文字工具、图形工具等 属性: 在这里编辑元素的属性 首先, 选择我们新建的合成, 点击工具栏的圆角矩形按钮, 同时按住shift, 在预览区域绘制一个矩形...我们把矩形看作是自由落体后再次反弹, 因此在Y轴坐标最低点和最高点速度应该为0, 整个下降过程是匀加速运动, 上升过程是匀减速运动。 因此我们需要给我们的动画设置曲线, 让其符合真实世界的物理规律。...我们无法同时为两个属性设置曲线, 需要将X和Y方向的位移属性分开, 右键点击图层面板的位置属性, 选择选择单独尺寸, 然后我们就可以单独为Y方向的位移属性设置曲线了, 如图: ?...同时, 点击工具栏中的钢笔工具, 便可以在曲线任意位置额外添加锚点进行更进一步的曲线控制。 按住 ALT 同时点击点击锚点可以将之前转换为曲线。...将时间轴移到下一个关键帧, 也就是速度第一次突变后的关键帧, 再次点击圆度属性左侧的菱形纪录关键帧, 同时把圆度属性设为100%。便完成了矩形到圆形的突变动画。 ?

    3K50

    绘图[上](四)

    setTextSize(); 设置字体的尺寸 setStyle(); 设置画笔的风格(空心或实心) setStrokeWidth(); 设置空心边框的宽度 getColor(); 获取画笔的颜色 Canvas...(left,top,right,button,paint); 绘制矩形 canvas.drawRect(left,top,right,button,radiusX,radiusY,paint); 绘制圆角矩形...使用Path不仅可以绘制简单的图形(如圆形,矩形,直线等),也可以绘制复杂一些的图形(如正多边形,五角星等),还有绘制裁剪和绘制文本都会用到Path。...使用Canvas和Paint画圆 首先创建一个新的类,集成于view类: HelloView.java文件: package com.example.user.test11; import android.content.Context...编译后的效果: image.png 运行的效果: image.png 好丑,下面让我们来画个太极图吧.O(∩_∩)O 小练习(太极图源码) HelloView.java文件: package com.example.user.test11

    76530

    结构建模设计——Solidworks软件之特征成型中旋转切除与圆角倒角功能实战总结(绘制一个沉头螺丝孔)

    —— 目录 0 引言 1 旋转切除功能 2 圆角与倒角 3 总结 ---- 0 引言         本次博文继续学习特征成型中的旋转切除,以及圆角和倒角功能,利用旋转切除功能画一个沉头螺丝孔,并实际演示下圆角和倒角是如何使用的...首先,画一个边长相等的立方体 ——点击前视基准面,绘制两点矩形,起始点为原点 ——同时选择矩形两条相邻边线,设置属性为等长,使用智能尺寸工具设置边长为25mm ——点击拉伸凸台基体,深度设置为25mm,...点击确定,得到一个边长25mm的立方体         下面在正方体中间进行旋转切除,因为现有的三个基准面都不在正方体的中心,所以需要在正方体中间建立一个基准面,下面看具体步骤: ——点击特征栏中的参考几何体...,弹出的菜单中选择基准面 ——此时左侧属性栏中第一参考被激活,点击正方体的一个面,该面被加入 ——点击反向等距,设置距离为12.5mm(因为正方体边长为25mm) ——若是不想刻意设置反向等距距离,还想让基准面在正方体的中间...——绘制沉头螺丝孔的截面,使用智能尺寸工具设置好尺寸,沉头孔半径7.8mm,螺丝孔半径4.5mm,沉头孔角度45度 ——点击旋转切除,点击是,草图自动闭合,并旋转切除。

    1.6K10

    结构建模设计——Solidworks软件之草图绘制基础图形工具总结(绘制直线、矩形、圆、槽、圆弧、圆角等)

    本次博文开始逐点击破,首先看下如何使用Solidworks软件进行草图的绘制,我们主要使用的是草图绘制工具,可以绘制包括直线、矩形、圆、槽、圆弧、圆角、点等,配合实际操作步骤,方便大家掌握。...(此时草图变为灰色不可编辑) ——若选择退出按钮,则此次操作是不会保存的 ——若想再次编辑草图,点击草图,或者设计树中选中该草图,右键选择编辑草图 1.2 绘制矩形 ——草图绘制工具中,选择点击边角矩形...——在草图绘制区域,左键点击确定第一个端点,此时移动鼠标,点击确定第二个端点,矩形就画出来了 ——添加尺寸,在草图选项卡中选择智能尺寸按钮,或者按住鼠标右键,向上滑动即可选择该智能尺寸标注功能 ——添加矩形的长和高...、第一个端点相对构造线的尺寸约束 ——滚动滚轮放大或缩小查看,或按住Ctrl+鼠标中键,移动画面查看 ——其他类型的矩形画法差异不大,可以自行摸索下 1.3 绘制圆 ——草图绘制工具中,选择绘制中心圆...1.6 绘制圆角及倒角 ——草图绘制工具,选择圆角,点击刚刚绘制的矩形一个端点,鼠标移至端点时可以看到黄色预览 ——点击端点,在左侧属性中可以设置圆角参数,点击确定生效 ——同样,可以选择绘制倒角,参数通用可以设置

    2.5K20

    【愚公系列】2023年12月 GDI+绘图专题 Rectangle

    《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。...方法: Contains(Point):判断一个点是否在矩形中。 Contains(Rectangle):判断一个矩形是否被包含在另一个矩形中。...示例: 6.案例 以下是一个完整的WinForms应用程序示例,演示如何使用GDI+绘制一个圆角彩色矩形按钮,并支持点击事件: using System; using System.Drawing; using...我们创建了一个名为ColoredRoundedRectButton的自定义控件,它绘制了一个圆角彩色矩形按钮,并支持点击事件。...然后,在MainForm中创建了一个窗体,将这个自定义按钮添加到窗体上,并订阅了按钮的Click事件。当按钮被点击时,会弹出一个消息框。你可以根据你的需求进一步自定义按钮的外观和功能。

    24811

    自定义View进阶路:绘制饼图

    android.os.Bundle; import java.util.ArrayList; import java.util.List; import cn.hlq.androidcustomview.R...关于如何移动,我们下面将进行撸码说明。 计算外接矩形距屏幕的左上右下; ? 计算外接矩形,也就是计算移动到屏幕中心。而我们就是要计算扇形组成圆形的外接矩形的左上右下距离。...首先实现之前我们要明白,在我们的自定义View中,也就是我们绘制的饼图中,我点击了某一块,饼图是怎么知道我点击的哪儿块呢?...那么之前绘制扇形的时候,我们知道绘制的饼图外接矩形位于红色矩形内,而点击后,也就是相当于当前的外接矩形延伸了一部分,当然,我们之前重新定义一个外接矩形,来放置我们延伸后的某一块扇形区域。...直接将直线的绘制起点在原有的起点值加上点击扇形后延伸的值。这样的原理就是,直接让直线的起点位于扇形点击后延伸后的终点,简介解决我们的问题; 其次,也可以在点击当前扇形的通过,更新直线起点终点。

    73120

    高质量又免费的图标资源都在这

    图标的尺寸 在移动端 iOS 规范中 2 倍图下最适合人点击的区域大小为 48*48px, iOS 功能图标尺寸为 48 加或减 4 的倍数;安卓 Android 功能图标尺寸为 48 加或减 8 的倍数...在很多带有色块的图标中,不仅要保证色块的大小统一,也要保证色块里面的功能图标图形的大小统一。 2....图标栅格 以 2 倍图 44*44px 为例,常见方形、圆形、水平矩形、竖直矩形图标为保证视觉大小一致,通常实际设计尺寸并不一样,可通过图标栅格关键线来进行规范,这里推荐一篇聊一聊iOS系统图标栅格&带你绘制系统图标...几何尺寸: ? 3. 图标的形状构成 所有的图标都建议使用基础图形进行组合,运用布尔运算绘制,以保持图标整体的合理性,尽量不要使用钢笔工具勾勒(除非是细节点),钢笔绘制随心所欲不严谨,美感大打折扣。...网站图标除可收藏下载外还提供图标编辑器对图标进行编辑微调,编辑完成后可导出为 SVG 或转 PNG 格式,各种大小尺寸一应俱全。 ?

    1.5K20

    结构建模设计——Solidworks软件之特征成型中拉伸凸台基体与设计树应用实战总结

    比如,我们常见的水杯就可以用这个功能绘制出来。 3)扫描命令:是将草图轮廓沿着另一线性草图描述出来的实体,比如常见的弹簧就可以用此命令绘制出来。...4)放样凸台基体命令:可将两个不同的草图轮廓通过其之间的连线连成一个实体,比如那种上大下小的储存箱,就可以先在下面画一个小矩形,上面放一个大矩形,通过放样凸台基体指令绘制即可。...,看下结束拉伸的 设置方法 ——点击草图绘制,选择顶面开始绘制草图 ——使用转换实体引用按钮,绘制一个与该顶面轮廓一样的草图,点击该按钮,点击该面,左侧勾选确认后,可见顶面生成了一个轮廓相同的槽 ——特性选项卡...——点击设计树中的特征,右侧零件视窗中的对应的实体也会跟着高亮显示 ——也可以在零件视窗区域选中该特征,弹出的浮窗也可以选择编辑该特征 ——再次编辑设计树中的凸台拉伸,改变尺寸,可见后面所有的尺寸都跟着一起变了...——点击凸台拉伸,点击编译草图,使用智尺寸进行修改,提交后薄壁特征也跟着一起改变了,因为第二步的薄壁拉伸中的草图就是用到了第一步图形中 的上顶面轮廓,转换实体引用得来的。

    1.4K20
    领券