首页
学习
活动
专区
工具
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。

59420

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

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

78760
  • Android小知识10则(下)

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

    79240

    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

    84520

    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%。便完成了矩形到圆形突变动画。 ?

    2.8K50

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

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

    2.4K20

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

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

    1.5K10

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

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

    72020

    绘图[上](四)

    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

    76030

    【愚公系列】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事件。当按钮被点击时,会弹出一个消息框。你可以根据你需求进一步自定义按钮外观和功能。

    22911

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

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

    1.3K20

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

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

    1.4K20
    领券