shape绘制形状基础详细解析

三分类SHAP图(特征标准化之后怎么画) 画三分类SHAP图出错 今天干了一件很蠢的事情,还耽误了很多时间,特此记录一下 我将数据标准化之后训练模型,然后将未标准化的数据作为输入计算了SHAP值,得出的结果显然不对。类似于下图这种 但是如果画图时将X_test输入作为参数,那么横坐标就对应的是标准化之后的值,所以我们可以先对X_test未经标准化时候制作一个copy版本X_test1,然后作为画图时候参数输入就可以正确画出SHAP图的横坐标了,也可以得到我们想要的信息。另外三分类shap values得到一个3维数据,有时候使用起来需要切片,比如 阅读详情

在这里插入图片描述

android 的样式主要则是通过 shape、selector、layer-list、level-list、style、theme、layer、bitmap 等组合实现
这篇文章主要介绍最基础的形状定义工具shape

1.Android develelopers官方解释
Defines a generic graphical “shape.”

Any Shape can be drawn to a Canvas with its own draw() method, but more graphical control is available if you instead pass it to a ShapeDrawable.

Custom Shape classes must implement clone() and return an instance of the custom Shape class.
翻译:定义通用图形“形状”。
任何形状都可以通过它自己的draw()方法绘制到画布上,但如果你把它传递给一个ShapeDrawable,就可以使用更多的图形控件。
自定义Shape类必须实现clone()并返回自定义Shape类的一个实例。
2.定义与使用shape
2.1定义shape
定义Shape需要在res/drawable/目录下建一个XML资源文件
在这里插入图片描述
2.2使用shape

 <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/shape"
        android:src="@drawable/shape"/>

一般通过设置background和src依靠layout布局中控件进行引用,把定义好的Shape设置为背景。因为APP界面中的元素,都是通过控件进行展示的,形状也是一种绘图元素,必须依附于控件。
3.Shape一共支持四种形状
在这里插入图片描述
①line : 线形,可以画实线或者虚线

②oval : 椭圆形,可以画正圆或者椭圆

③rectangle : 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等

④ring : 环形,可以画环形进度条
4.属性介绍

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/black"/>
    <!-- 矩形的填充色 -->
    <corners android:radius="2dp"/>
    <!-- 矩形的圆角弧度 -->
    <stroke android:width="2dp"/>
    <!--矩形的外边框-->
    <gradient android:angle="90"/>
    <!--设置形状的渐变颜色,可以是线性渐变、辐射渐变、扫描性渐变-->
    <padding android:top="2dp"/>
    <!--设置内容与形状边界的内间距,可分别设置左右上下的距离 -->
    <size android:width="20dp"/>
    <!--形状宽和高 -->
</shape>
(1)solid : 设置形状填充的颜色,只有android:color一个属性 
- android:color 填充的颜色
 
(2)padding: 设置内容与形状边界的内间距,可分别设置左右上下的距离
android:left 左内间距
android:right 右内间距
android:top 上内间距
android:bottom 下内间距
 
(3)gradient: 设置形状的渐变颜色,可以是线性渐变、辐射渐变、扫描性渐变
android:type 渐变的类型
linear 线性渐变,默认的渐变类型
radial 放射渐变,设置该项时,android:gradientRadius也必须设置
sweep 扫描性渐变
android:startColor 渐变开始的颜色
android:endColor 渐变结束的颜色
android:centerColor 渐变中间的颜色
android:angle 渐变的角度,线性渐变时才有效,必须是 45 的倍数,0 表示从左到右,90 表示从下到上
android:angle属性的值决定了颜色渐变的角度(环绕控件中间来扭转响应的度数)
0:从左到右颜色由浅到深变化(下面也是由浅到深变化)

45:从左下角到右上角

90:从下到上颜色

135:从右下角到左上角

180:从右到左

225:从右上角到左下角

270:从下到上

315:从左上角到右下角

360:从左到右

android:centerX 渐变中心的相对X坐标,放射渐变时才有效,在0.0 到 1.0 之间,默认为 0.5,表示在正中间
android:centerY 渐变中心的相对X坐标,放射渐变时才有效,在 0.0到1.0之间,默认为0.5,表示在正中间
android:gradientRadius 渐变的半径,只有渐变类型为 radial 时才使用
android:useLevel 如果为 true,则可在 LevelListDrawable 中使用
 
(4)corners: 设置圆角,只适用于rectangle类型,可分别设置四个角不同半径的圆角,即当<shape>标签中的android:shape=rectangle时有效
android:radius 圆角半径,如果只设置这一个,代表四个方向的圆角都设置为该圆角半径,但可以被每个特定的圆角属性重写
android:topLeftRadius 左上角的半径
android:topRightRadius 右上角的半径
android:bottomLeftRadius 左下角的半径
android:bottomRightRadius 右下角的半径
 
(5)stroke: 设置描边,可描成实线或虚线。
android:color 描边的颜色
android:width 描边的宽度
// 以下两个属性设置虚线 
android:dashWidth 设置虚线时的横线长度,值为0时是实线 
android:dashGap 虚线的间隔

(6)size
android:width 设置shape的宽度
android:height  设置shape的高度

 
//以下为只在ring中可以使用
android:innerRadius 内环的半径

android:innerRadiusRatio 浮点型, 默认值为9。环的内半径表示为环的宽度的比率。 例如,  如果innerRadiusRatio=9,那么内半径等于环的宽度除以9。如果定义了innerRadius,这个值将被忽略。该值会被 android:innerRadius 覆盖。例如,如果android:innerRadiusRatio=5,表示内环半径等于环的宽度除以5。

android:thickness 环的厚度

android:thicknessRatio 
浮点型,默认值为3。环的厚度表示为环的宽度的比率。例如, 如果厚度比=3,那么厚度等于环的宽度除以3。如果定义了thickness,这个值将被忽略。该值会被 android:thickness覆盖

android:useLevel 一般为 false,否则可能环形无法显示,只有作为LevelListDrawable 使用时才设为 true

stroke属性解释:见下图
stroke属性解释
5.工作常用形状
5.1 圆角shape

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/black"/>
    <corners android:radius="15dp"/>
</shape>

这是最简单的也是最常用的
在这里插入图片描述
5.2 画下划线虚线

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">

    <size android:height="1dp"/>
    <stroke
        android:dashGap="3dp"
        android:dashWidth="5dp"
        android:width="1dp"
        android:color="@color/black" />
</shape>

在这里插入图片描述
引用

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="2dp"
        android:background="@drawable/shape"/>

注意:设置的 view 的高度必须比 shape 虚线的高度高。不然不会显示,需要将 view 中的 layout_height 设置的比 shape中( size的height) 虚线的高度大就可以了。为了这问题也困惑了很久,我感觉这可能和View的绘制有关,如果 view 的高度比 shape 虚线小,也并不符合现实。也希望看到这篇文章的对这个问题有自己见解的大佬可以在评论区留下你的理解。

但其实意识到刚才高度的问题,但运行到真机时,在真机上依然不是虚线,而显示的是一条实线。通过查找原因,发现原因在于 Android 3.0 之后,系统默认关闭了硬件加速功能。所以你可以在代码中使用以下方法。

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
在xml中添加一句代码android:layerType=“software”

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="2dp"
        android:background="@drawable/shape"
        android:layerType="software"/>

5.3 圆环

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:innerRadius="100dp"
    android:shape="ring"
    android:thickness="50dp"
    android:useLevel="false">
    <gradient
        android:centerColor="@color/cardview_light_background"
        android:centerY="0.4"
        android:endColor="@color/design_default_color_surface"
        android:startColor="@color/black" />
</shape>

在这里插入图片描述

android:绘制圆角矩形,椭圆形 一、前言:在我们工作中会有绘制不同圆角的按钮图形,具体该怎么做之前也只是了解个大概,今天看了一节课,听完老师讲的我自己又写了一遍,记录一下。以及两个形状xml:shape_oval_rose.xml。首先先创建一个DrawableShapeActivity。 阅读详情

相关推荐

使用Android的形状(Shape)制作圆角元素

幸运的是,Android提供了一种名为Shape的功能强大的工具,可以帮助我们轻松地创建各种形状,包括圆角元素。通过使用XML定义形状,并将其应用于布局文件中的UI元素,我们可以轻松实现界面的美化效果。上述代码创建了一个TextView元素,并将它的背景设置为我们之前定义的圆角形状。你可以根据自己的需求调整这些属性。首先,我们需要在res目录下的drawable文件夹中创建一个XML文件,作为我们要创建的圆角形状的定义。以上是我为您提供的关于使用Android的Shape功能来制作圆角元素的回答。

ByteSparkX的博客 561

shape颜色渐变、圆角、半圆角、边框、填充

android shape属性

qq_32670947的博客 815

基于COMSOL电弧动态仿真模型优化:高收敛性可修改吹弧方案解析

在多物理场耦合分析中,电弧动态仿真历来是数值稳定性的难点:温度从室温跃升至数万开尔文,电导率随温度呈数量级跳变,流动、传热与电磁场相互牵制,极易引发求解器不收敛或初始值不一致等问题。如何构建高收敛性的数值模型,成为开关设备灭弧性能优化的重要技术基础。通过合理的几何简化、全耦合求解器配置、辅助扫描初始化策略以及参数化建模手段,可以实现对吹弧方案的灵活调整与批量寻优,从而系统性评估气流速度、喷口形状、触头间距等关键因素对熄弧性能的影响。这类仿真方法广泛应用于断路器、接触器等高压电器产品研发,为灭弧室结构设计提供

weixin_29758911的博客 350

shape()函数的用法

Numpy中shape()函数的意义及相关用法 shape函数的功能是读取矩阵或数组的长度 **通常有三种使用方法:shape[0],shape[1],shape shape[0] :读取行数 shape[1]:读取列数 shape:行列数组成元组直接输出** ** 一、当数组或矩阵是一维时 ** 1、只能使用shape[0],返回的是数组或矩阵中元素的个数 a=np.array([2,3,4]...

WangZixuan1111的博客 3万+

Open5GS实战:从零搭建树莓派5G核心网并与商用终端联调

本文详细介绍了如何在树莓派5上从零开始搭建基于Open5GS的5G核心网,涵盖系统准备、依赖安装、源码编译、关键配置修改及服务启动全流程。通过整合SDR基站与商用终端进行端到端联调,为开发者和研究者提供了一个低成本、可实践的5G网络实验平台,助力物联网与边缘计算应用的本地化测试与验证。

weixin_29194255的博客 158

Fluent新手避坑:遇到‘Floating point exception’别慌,这7个排查步骤帮你搞定

本文为Fluent新手提供了遇到‘Floating point exception’错误时的7个详细排查步骤。从理解浮点异常的本质到边界条件检查、时间步长设置、求解器选择、网格优化、亚松弛因子调节以及高阶格式的取舍,帮助用户快速定位并解决问题,确保CFD仿真的稳定性和准确性。

weixin_30480075的博客 260

Concat 快速上手指南:免费开源的本地视频编辑器,无水印、100+ 特效

用常见剪辑工具导出短视频时弹出水印,做竖屏版本又要重剪一遍粗剪。Concat 是一款免费、开源的本地视频编辑器,跑在 macOS、Windows、Linux 和 Android 上,无账号、无水印、无订阅。它最大的不同:窗口里能做的每个操作,脚本和 AI 代理都能用同一套编辑命令驱动,一个工程就能批量出不同尺寸和配色的版本。 ## 动手之前:一张表看要求 运行前提很低:64 位 Windows

gitblog_00246的博客 99

多模态数据集对比:MicroLens、PixelRec和Amazon在电商推荐中的表现差异

本文深入对比了三大主流多模态数据集MicroLens、PixelRec和Amazon在电商推荐中的表现差异。通过实际测试数据,分析了这些数据集在冷启动处理、模态融合、稀疏性挑战等关键场景下的真实表现,为算法工程师和研究员提供实用指南。特别关注多模态数据集的选择对推荐系统效果的影响,帮助开发者优化模型性能。

weixin_28717939的博客 417

Android XML绘图之 Shape

Android XML绘图之 Shape参考资料: 1.《Android群英传》 2.Keegan小钢博客地址一般用shape定义的xml文件存放在drawable目录下,若项目没有该目录则新建一个,而不要将它放到drawable-hdpi等目录中 通过Shape可以在XML中绘制各种形状,可以定义下面四种类型的形状 下面是shape的全部属性<?xml version="1.0" enco

郭勇的博客 3646

解决Android 14兼容性问题:NDK中arm64-v8a的正确配置方法

本文详细解析Android 14系统架构变化对NDK开发的影响,重点介绍arm64-v8a架构的正确配置方法。针对常见的兼容性问题如so库缺失、ABI不匹配等提供解决方案,并分享性能优化与自动化测试实践,助力开发者高效适配Android 14设备。

algae的博客 1219

ROS+Gazebo仿真入门:用TurtleBot3模拟扫地机器人全流程

本文详细介绍了如何利用ROS和Gazebo仿真平台,以TurtleBot3 Waffle Pi模型为核心,从零搭建并运行一个虚拟扫地机器人的全流程。内容涵盖仿真环境搭建、世界与机器人模型解析,并重点演示了SLAM建图、自适应蒙特卡罗定位以及全局与局部路径规划等核心算法实战,为机器人算法开发与验证提供了高效、低成本的解决方案。

sre5engineer的博客 1087

WPF中的形状Shape与几何图形Geometry详解

WPF中的形状Shape与几何图形Geometry详解

鲤籽鲲的博客 7033

Win11 C盘瘦身终极指南:哪些能删/能移/不能碰?附详细目录清单

本文提供了一份详细的Win11 C盘瘦身终极指南,清晰区分了可安全删除、适合迁移以及绝对不能触碰的系统目录。文章不仅列出了具体的文件夹清单与操作建议,还介绍了使用符号链接和Robocopy进行安全迁移的高阶方法,并附带了自动化脚本,帮助用户从根本上解决C盘空间不足的问题,同时确保系统稳定。

weixin_29246195的博客 1545

鸿蒙5.0开发实战案例:绘制几何图形 (Shape)组件解析~

绘制组件支持通过各种属性对组件样式进行更改。通过fill可以设置组件填充区域颜色。Path()通过stroke可以设置组件边框颜色。Path()通过strokeOpacity可以设置边框透明度。Path()通过strokeLineJoin可以设置线条拐角绘制样式。拐角绘制样式分为Bevel(使用斜角连接路径段)、Miter(使用尖角连接路径段)、Round(使用圆角连接路径段)。Polyline()// 设置折线拐角处为圆弧。

liudiaosi6的博客 928

STM32实战开发(65):STM32摄像头图像采集开发教程

我们将会详细介绍如何使用STM32进行摄像头控制、图像数据采集以及如何将采集到的图像数据传输到其他设备进行处理。通过这篇博客,您将能够掌握STM32与摄像头模块的图像采集技术,应用于各种图像处理场景。为了确保STM32能够正确接收图像数据,我们需要配置STM32的GPIO引脚,并通过外部中断捕获这些信号。为了实现更高效的图像采集,可以通过DMA进行数据传输,将图像数据直接从GPIO引脚存储到内存中。通过DMA传输,我们可以将采集到的图像数据直接存储在内存中的一个缓冲区,然后进行后续的图像处理。

2201_76125393的博客 2537

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【Android Drawable系列】- shape xml属性详解

Android Drawable系列 日常开发中,一些简单的背景或者图形都会使用xml的shape标签完成,经常使用在按钮的背景上。 shape的优点还是很多的 文件比切图小 节约内存 支持拉伸 shape的属性虽然比较简单,但是也能绘制出一些比较复杂的形状 概览 首先来看看shape标签所支持的标签以及属性,如下图: Shape 左侧是shape标签的自身属性,右侧是shape标签所支持的标签和标签的属性。 下面是一份xml属性实例和说明 <?xml version="1

killerjava的专栏 1158

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android开发之Shape详细解读

  日常开发中,我们会遇到一些Button、Textview...等控件的背景是圆角矩形、圆形...等,和android默认的控件背景矩形不一致,此时shape的作用就体现出来了,我们可以根据shape属性画出很多我们意想不到的背景图案,下面我会把所有shape的属性都介绍一下。本文参考子http://keeganlee.me/post/android/20150830。 1  sh...

avxv90584的博客 553

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

wx-charts数据形状绘制:draw-data-shape.js算法实现终极指南

wx-charts是一个专为微信小程序设计的图表组件库,提供了多种常用图表类型的完整解决方案。本文将深入解析wx-charts库中数据形状绘制的核心算法实现,帮助开发者理解图表绘制的底层原理。🎯 ## 📊 数据形状绘制的重要性 在数据可视化中,数据形状是图表的核心元素,直接影响用户对数据的理解和分析。wx-charts通过`draw-data-shape.js`文件实现了高效的数据点形状绘

gitblog_01169的博客 983

Android通过用代码画虚线椭圆边框背景来学习一下shape的用法

在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状,shape可以绘制矩形环形以及椭圆,所以只需要用椭圆即可,在使用的时候将控件比如imageview或textview的高宽设置成一样就是正圆,solid表示远的填充色,stroke则代表远的边框线,所以两者结...

chunmianchen2556的博客 290

形状绘图

形状绘图 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:Visual Studio 2015 作者:朱海恩 撰写时间:2019年6月10日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...

weixin_42585491的博客 388

Shape详解

转载自: https://www.cnblogs.com/lang-yu/p/6112052.html   日常开发中,我们会遇到一些Button、Textview...等控件的背景是圆角矩形、圆形...等,和android默认的控件背景矩形不一致,此时shape的作用就体现出来了,我们可以根据shape属性画出很多我们意想不到的背景图案,下面我会把所有shape的属性都介绍一下。本文参考子&amp;amp;nb...

俊墨客 2861

REPENTOGON 调试渲染详解:Shape 类 API 与 DebugRenderer 调试形状实战

Shape 是 REPENTOGON(《以撒的结合:忏悔》脚本扩展)向 Lua 脚本开放的一组**调试形状对象**,用于在游戏调试渲染层中绘制圆(Circle)或绑定碰撞胶囊(Capsule),并可控制形状的存活时长(Timeout)。阅读本文后,你将掌握 `Shape` 类的全部 4 个方法(`Circle`、`Capsule`、`GetTimeout`、`SetTimeout`)的签名与调用方

gitblog_00030的博客 644

【Android基础】android shape详解(二)

第六个 <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 设置固定填充色 --> <solid android:color="#f00" /> <size android:width="60dp" andro...

weixin_30297281的博客 106

Android Shape 的使用入门

1. 使用 shape 绘制线条<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"><!-- 显示一条虚线,破折线的宽度为 dashWith,破...

weixin_34265814的博客 166

HarmonyOS 6.0图形绘制与形状裁剪实战指南

图形绘制是现代UI开发的核心技术之一,其原理基于计算机图形学中的矢量绘图技术。通过坐标系统和几何变换,开发者可以精确控制图形元素的呈现。在HarmonyOS 6.0的ArkTS框架中,提供了Shape、Circle等绘制组件和clipShape裁剪技术两种主要实现方式。这些技术不仅能实现基础图形绘制,还能通过Path命令创建复杂曲线,在自定义UI、数据可视化等领域具有重要价值。特别是clipShape技术,为头像裁剪、特殊形状图片展示等场景提供了高效解决方案。掌握这些图形处理技术,配合性能优化策略,可以显著

weixin_29204205的博客 160

Flutter Slider自定义形状:用Shape实现菱形/宝石滑块

在Flutter开发中,UI定制是常见需求。Slider组件默认呈现为标准的圆形滑块,但当设计稿要求宝石形状、菱形或带渐变的轨道时,仅靠主题参数调整无法实现。理解Flutter的自绘机制是关键:Slider本质是RenderObjectWidget,外观由Canvas绘制,而滑块轨道与滑钮分别由SliderTrackShape和SliderComponentShape控制。通过实现这两个抽象类,开发者可以完全掌控滑块的形状、尺寸、动画与反馈,从而打造出符合品牌风格的交互组件。无论是音视频进度条、调节面板还是

weixin_29012765的博客 123
上一篇: 浅谈屏幕适配 dp dip sp dpi ppi px sp
下一篇: Mac Android Studio Git查看提交代码中文乱码解决方案
橘子先生z
博客等级 码龄7年 11粉丝 24原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘子先生z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值