自定义控件(30)---绘图区域(Range)

2024-08-31 22:58

本文主要是介绍自定义控件(30)---绘图区域(Range),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自启舰

public void setEmpty() //置空
public boolean set(Region region)
public boolean set(Rect r)
public boolean set(int left, int top, int right, int bottom)
public boolean setPath(Path path, Region clip)//使用SetPath()构造不规则区域

    public class MyRegionView extends View {  public MyRegionView(Context context) {  super(context);  // TODO Auto-generated constructor stub  }  @Override  protected void onDraw(Canvas canvas) {  // TODO Auto-generated method stub  super.onDraw(canvas);  //初始化画笔  Paint paint = new Paint();  paint.setColor(Color.RED);  paint.setStyle(Style.FILL);  paint.setStrokeWidth(2);  Region rgn = new Region(10,10,100,100);  //      rgn.set(100, 100, 200, 200);  drawRegion(canvas, rgn, paint);  }  //这个函数不懂没关系,下面会细讲  private void drawRegion(Canvas canvas,Region rgn,Paint paint)  {  RegionIterator iter = new RegionIterator(rgn);  Rect r = new Rect();  while (iter.next(r)) {  canvas.drawRect(r, paint);  }   }  }  


未开启Set函数时
这里写图片描述

使用Set函数后,替换为新区域
这里写图片描述


使用SetPath()构造不规则区域
    public class MyRegionView extends View {  public MyRegionView(Context context) {  super(context);  // TODO Auto-generated constructor stub  }  @Override  protected void onDraw(Canvas canvas) {  // TODO Auto-generated method stub  super.onDraw(canvas);  //初始化Paint  Paint paint = new Paint();  paint.setColor(Color.RED);  paint.setStyle(Style.FILL);  paint.setStrokeWidth(2);  //构造一个椭圆路径  Path ovalPath = new Path();  RectF rect =  new RectF(50, 50, 200, 500);    ovalPath.addOval(rect, Direction.CCW);  //SetPath时,传入一个比椭圆区域小的矩形区域,让其取交集  Region rgn = new Region();  rgn.setPath(ovalPath,new  Region(50, 50, 200, 200));  //画出路径  drawRegion(canvas, rgn, paint);  }  //这个函数不懂没关系,下面会细讲  private void drawRegion(Canvas canvas,Region rgn,Paint paint)  {  RegionIterator iter = new RegionIterator(rgn);  Rect r = new Rect();  while (iter.next(r)) {  canvas.drawRect(r, paint);  }   }  }  

这里写图片描述

这篇关于自定义控件(30)---绘图区域(Range)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125229

相关文章

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

HTML5自定义属性对象Dataset

原文转自HTML5自定义属性对象Dataset简介 一、html5 自定义属性介绍 之前翻译的“你必须知道的28个HTML5特征、窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放,例如我们要在一个文字按钮上存放相对应的id: <a href="javascript:" d