Android XML——shape标签

Android-打造万能shape再也不用写很多xml了 打造万能shape,再也不用写很多xml了,可以当做TextView,Button,EditText等多种控件,方便实用 立即下载

创建:在res/drawable下创建:sha_btn.xml
使用:在XML中
android:background="@drawable/sha_btn"
配合selector使用:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/sha_btn" android:state_activated="false" />
    <item android:drawable="@drawable/sha_btn" android:state_activated="true" />
</selector>

shape可以自定义形状,通过android:shape指定以下四种形状:
1.rectangle: 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等
2.oval: 椭圆形,用得比较多的是画正圆
3.line: 线形,可以画实线和虚线
4.ring: 环形,可以画环形进度条

在shape根属性中包含有以下属性:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:dither="false|true"             //将在位图的像素配置与屏幕不同时(例如:ARGB 8888 位图和 RGB 565 屏幕)启用位图的抖动;值为“false”时则停用抖动。默认值为 true。
    android:shape="rectangle|line|oval|ring"//分别为矩形、线、椭圆、环。默认为矩形rectangle
    android:innerRadius="integer"           // shape为ring时可用,内环半径
    android:innerRadiusRatio="float"        // shape为ring时可用,内环的厚度比,即环的宽度比表示内环半径,默认为3,可被innerRadius值覆盖
    android:thickness="integer"             // shape为ring时可用,环的厚度
    android:thicknessRatio="float"          // shape为ring时可用,环的厚度比,即环的宽度比表示环的厚度,默认为9,可被thickness值覆盖
    android:tint="color"                    // 给shape着色
    android:tintMode="src_in|src_atop|src_over|add|multiply|screen" // 着色类型
    android:useLevel="false|true"           // 较少用,一般设为false,否则图形不显示。为true时可在LevelListDrawable使用
    android:visible="false|true" 
    >
</shape>

关于着色的内容可以参考这个链接:https://blog.youkuaiyun.com/u010687392/article/details/47399719

其他属性:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid 	/>
    <padding 	/>
    <gradient	 />
    <corners 	/>
    <stroke 	/>
    <size 	/>
</shape>

1.solid:填充,只有android:color一个属性,用于设置shape填充的颜色
2.padding:内边距,可设置左右上下的距离:

    android:left=""         <!--左内间距-->
    android:top=""          <!--右内间距-->
    android:right=""        <!--上内间距-->
    android:bottom="" />    <!--下内间距-->

3.gradient:设置渐变颜色

android:type 指定渐变的类型:linear 线性渐变,默认的类型;radial 放射渐变;sweep 扫描性渐变
android:startColor 渐变开始的颜色
android:endColor 渐变结束的颜色
android:centerColor 渐变中间的颜色
android:angle 渐变的角度,线性渐变时才有效,必须是45的倍数,0表示从左到右,90表示从下到上
android:centerX  渐变中心的相对X坐标,放射渐变才有效,在0.0到1.0之间,默认为0.5,表示在正中间
android:centerY 渐变中心的相对Y坐标,放射渐变才有效,在0.0到1.0之间,默认为0.5,表示在正中间
android:gradientRadius 渐变的半径,只有放射渐变时才使用
android:useLevel 如果为true,则可在LevelListDrawable中使用

类型
图片来源:https://www.cnblogs.com/MianActivity/p/5867776.html

4.corners:设置圆角

android:radius 圆角半径,会被下面每个特定的圆角属性覆盖
android:topLeftRadius 左上角的半径
android:topRightRadius 右上角的半径
android:bottomLeftRadius 左下角的半径
android:bottomRightRadius 右下角的半径

5.stroke:描边边框,可实线虚线

android:color 描边的颜色
android:width 描边的宽度。
android:dashWidth 设置虚线时的横线'-'的长度,值为0时,表示为实线;值大于0则为虚线。  
android:dashGap 描边为虚线时,两个横线'-'之间的距离

6.size:设置宽度和高度,相当于view的android:width和android:height。

<size
        android:width="100dp"
        android:height="100dp" />

<Button
            android:id="@+id/"
            android:layout_width=""
            android:layout_height="" 
            android:width=""
            android:height=""
            />

只有android:layout_width和android:layout_height都设置wrap_content后才会生效,原因如下:

首先我们应该知道一个控件的大小并不是由它自己本身来决定的,而是由父布局和它自身一起来决定的。
而layout_width就是父布局允许view所占的宽度,而width是view的自身宽度。在layout_width和width都设置为
具体数值的时候,width其实就无效了,这也不难理解,父布局已经给你分配了具体的空间,
不论view怎么设置width,view的宽度也只能是layout_width.那么什么情况下,width也会起作用呢。
当我们把layout_width设置成wrap_content的时候,父布局的意思是包裹view,view有多大就分配多大空间给它,
这时候view的宽度就取决于width,假如不设置width,那么系统就会根据view的内容来自行测量大小。
layout_height和height是一样的。

画虚线时,有几点特性必须要知道的:
只能画水平线,画不了竖线;
线的高度是通过stroke的android:width属性设置的;
线在整个形状区域中是居中显示的;
线左右两边会留有空白间距,线越粗,与stroke的dashWidth的值相关。
引用虚线的view必须添加属性android:layerType,值设为"software",否则显示不了虚线。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">
    <stroke android:color="@color/colorAccent" android:width="1dp" android:dashGap="4dp" android:dashWidth="4dp"></stroke>
</shape>
在布局文件里面添加View控件
<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@drawable/"
    android:layerType="software"></View>
android 使用Xml文件定义Shape方式 主要介绍了android 使用Xml文件定义Shape方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 立即下载

相关推荐

TSMC65nm工艺下Virtuoso仿真gm-id曲线的保姆级教程(含ADE设置详解)

本文提供了一份在TSMC 65nm工艺下使用Cadence Virtuoso绘制gm-id曲线的详细教程。内容涵盖从理解gm/id方法学、搭建仿真环境、深度解析ADE设置,到运行DC仿真、提取数据并生成对数坐标曲线的完整流程。教程重点解析了Virtuoso ADE中的关键设置与常见避坑点,旨在帮助模拟集成电路设计初学者快速掌握这一核心设计工具,为高性能电路设计奠定基础。

grpc6streamer的博客 1173

Android xml 代码绘制图形之 Shape 详解

shape--共有4种类型:矩形(默认)、椭圆、直线、环形-->--以下4个属性只有当类型为环形时才有效-->--内环半径-->--内环半径相对于环的宽度的比例,比如环的宽度为100,比例为2.0,那么内环半径为50-->--环的厚度-->--环的厚度相对于环的宽度的比例-->--如果当做是LevelListDrawable使用时值为true,否则为false-->

jppipai的博客 880

SHP转TXT、TXT转SHP工具(附工具下载链接)

关于TXT,可以选择整个图层生成一个TXT。也可以勾选“每个地块单独存TXT”,然后选择一个字段,根据字段值,给每个地块生成一个TXT文件。支持选择和数据框一样的坐标系,也可以选择一个图层,工具会采用和这个图层一样的坐标系。1、TXT数据支持输入单个或者多个TXT文件,也可以直接选择TXT所在的文件夹。所有的TXT数据都生成到一个矢量数据图层。关于这一行的内容,可以在地块坐标行设置中进行设置。其他:①面节点闭合:勾选,则回到起点。属性描述:可以直接复制粘贴进来,也可以直接修改。也可以改为任意字母。

坐听风雨 4297

Android中的XML shape

XML描述布局

qq_41008818的博客 367

树莓派CM4 PCIe扩展方案与ASM1184e芯片应用

PCIe(Peripheral Component Interconnect Express)是计算机硬件中重要的高速串行总线标准,广泛应用于存储、网络等设备连接。其核心原理是通过差分信号实现高带宽传输,PCIe Gen2 x1的理论带宽可达5Gbps。在嵌入式开发中,PCIe扩展技术能有效解决单板计算机接口不足的问题,特别适合树莓派等微型平台。ASMedia ASM1184e作为PCIe交换芯片,可将单个接口扩展为多个,支持热插拔且免驱动,极大提升了工程灵活性。通过PCIe交换机方案,开发者能在树莓派CM

weixin_42602368的博客 421

K-GAS解读(08)

大众kgas标准,大众及其供应商kgas

m0_51113317的博客 598

Android开发-XML-Shape

stroke:描边 android:width=“2dp” 描边的宽度,android:color 描边的颜色。android:topLeftRadius=“20dp” 设置左上角的半径 android:topRightRadius=“20dp” 设置右上角的半径 android:bottomLeftRadius=“20dp” 设置右下角的半径 android:bottomRightRadius=“20dp” 设置左下角的半径。另外渐变默认的模式为android:type=“linear”,即线性渐变,

weixin_38090079的博客 279

MS1030超声波流量计电路实战:如何用15ps精度优化水表设计(附配置代码)

本文深入探讨了如何利用MS1030超声波流量计芯片实现15ps高精度测量,以优化水表设计。文章从系统误差分配出发,详细解析了硬件电路设计要点、SPI通信配置及核心优化技巧,如利用可编程偏置电压和8回波累加功能来提升抗干扰能力与测量稳定性,并附有实用的配置代码示例。

svm4gardener的博客 333

Android入门之路 - shape保姆级手册

使用方式: 1.在res - drawable - 创建文件(一般为Shape开头) 2.文件内部shape为最外层标签,可设置当前的shape形状,有圆形,长方形,环形,线形 3.内部6种子条目标签,要熟悉掌握,长方形同时可实现圆化MainActivity :package com.yl.shape.shapedemo;import android.content.Intent; impor

Android、前端、小程序、后端 4667

秦时明月6.2魔改版_从零到一部署指南_含安卓客户端配置与GM后台直通

本文详细介绍了秦时明月6.2魔改版的从零到一部署指南,包括环境准备、服务端安装、安卓客户端配置以及GM后台直通等关键步骤。特别针对安卓客户端配置和GM工具使用提供了实用技巧,帮助用户快速搭建并优化游戏服务器,确保稳定运行。

weixin_42522964的博客 315

Unity 面试篇|(六)数据结构和算法篇 【全面总结 | 持续更新】

先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样遍历完后,堆中的10000个数就是所需的最大的10000个。桶排序是计数排序的升级版。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。这样处理就可以分别在每个文件的10^6个数据中找出最大的10000个数,合并到一起在再找出1000*10000中的最终的结果。

游戏开发小Y的博客 12万+

Android Shape 详细使用

一、简介 在 Android 开发中,可以使用 shape 定义各种各样的形状,也可以定义一些图片资源,相对于传统图片来说,使用 shape 可以减少资源占用,减少安装包大小,还能够很好地适配不同尺寸的手机。 二、子标签属性 Shape 子标签属性可以定义控件的一些展示效果,例如 圆角、渐变、填充、描边、大小、边距 … <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.andro

卡尔特斯 1628

PyTorch实战(20)——生成对抗网络(Generative Adversarial Network,GAN)

自生成对抗网络 (Generative Adversarial Network, GAN) 提出以来,一直是一个活跃的研究和开发领域。本节探索了 GAN 的基本概念,重点解析了其两大核心组件——生成器与判别器的架构设计,深入阐述了 GAN 模型的整体工作机制,并使用 PyTorch 从零开始实现了深度卷积生成对抗网络 (Deep Convolutional GAN, DCGAN)。

盼小辉丶的博客 3534

Android XML shape 标签使用详解

Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景。但是,也肯定也有人在能使用 Drawable 的地方选择使用一张 png 图(或者是一张 .9 图)作为 View 的背景,因为后者把问题交给 UI 设计人员去了,省事。当然,使用图片这种在项目中也很...

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 5962

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

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Android Studio的XML文件中shape标签的用法4-3

在《Android Studio的xml文件中shape标签的用法4-1》和 《Android Studio的xml文件中shape标签的用法4-2》中提到了shape标签的子元素的使用方法,通过这些子元素,可以实现对所绘图形的线条、颜色、大小等进行控制。shape标签的属性android:shape可以实现对所绘图形的形状进行控制。通过android:shape,可以绘制直线、椭圆(圆形)、矩形和环形。 1 绘制直线 在Android Studio中创建drawable资源文件,并将root tag

hou09tian的博客 2664

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android Studio的xml文件中shape标签的用法4-1

Android Studio的drawable文件夹中包含了要显示的图片以及背景等资源文件,这些文件可以是相应的图片格式,也是可以是xml文件。可以在drawable中添加包含shape标签的资源文件,来绘制一些特殊形状、颜色和背景的视图。 1 创建资源 将Android Studio中显示项目的方式设置为“Project”(图1①),之后在“app->src->main->res->drawable”文件夹中新建drawable 资源文件。 图1 新建xml文件 从图.

hou09tian的博客 2785

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android xml一次添加多个<item>元素标签,通过标签直接生成shape,无需再写shape.xml BackgroundLibrary...

BackgroudLibraryA framework for directly generating shape through Tags, no need to write shape.xml again(通过标签直接生成shape,无需再写shape.xml)依赖方式:implementation "com.android.support:appcompat-v7:$supportVersi...

weixin_34287049的博客 683

Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景。但是,也肯定也有人在能使用 Drawable 的地方选择使用一张 png 图(或者是一张 .9 图)作为 View 的背景,因为后者把问题交给 UI 设计人员去了,省事。当然,使用图片这种在...

amos1993的博客 399

Android shape 通过xml“制造”图片(apk瘦身,减少内存)

Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景。但是,也肯定也有人在能使用 Drawable 的地方选择使用一张 png 图(或者是一张 .9 图)作为 View 的背景,因为后者把问题交给 UI 设计人员去了,省事。当然,使用图片这种在项目中也...

T的专栏 2560
上一篇: Android XML——获取xml中string,color,dimens,drawable等资源文件中的值
下一篇: Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
sunyFS
博客等级 码龄7年 21粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值