Android中shape的使用

Android(安卓):res之shape的创建并制作 首先告诉你一个技巧(创建shape)大部分的人都不知道正确创建shape的XML文件的方法,都会通过修改已经使用过的shape的XML文件,来达到得到自定义shape的目的,其实这样是很麻烦的.通过在网上的不断学习,我总结了有以下三种方法来创建shape的XML文件根据android studio的版本不同,所以方法也不同 第一种 切换到progect视图下 ,把selector改成shape就O 阅读详情
标签: shape  Android  移动开发  休闲  职场
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://kofi1122.blog.51cto.com/2815761/521605


本人在美工方面一直是比较白痴的,对于一些颜色什么乱七八糟的非常头痛,但是在Android编程中这又是经常涉及到的东西,没办法,只有硬着头皮上。


Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:

先看下面的代码:
        <shape>
            <!-- 实心 -->
            <solid android:color="#ff9d77"/>
            <!-- 渐变 -->
            <gradient
                android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:angle="270" />
            <!-- 描边 -->
            <stroke
                android:width="2dp"
                android:color="#dcdcdc" />
            <!-- 圆角 -->
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>

solid:实心,就是填充的意思
android:color指定填充的颜色

gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,ndroid:angle是渐变角度,必须为45的整数倍。
另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。

stroke:描边
android:width="2dp" 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp" 
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。

corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
<corners 
        android:topRightRadius="20dp"    右上角
        android:bottomLeftRadius="20dp"    右下角
        android:topLeftRadius="1dp"    左上角
        android:bottomRightRadius="0dp"    左下角
 />
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个有点郁闷,不过不影响使用,记得别搞错了就行。
还有网上看到有人说设置成0dp无效,不过我在测试中发现是可以的,我用的是2.2,可能修复了这个问题吧,如果无效的话那就只能设成1dp了。

padding:间隔
这个就不用多说了,XML布局文件中经常用到。


大体的就是这样,以下是一个使用的具体示例:用在Selector中作为Button的背景,分别定义了按钮的一般状态、获得焦点状态和按下时的状态,具体代码如下:

main.xml:
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TestShapeButton"
    android:background="@drawable/button_selector"
    />


button_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <!-- 渐变 -->
            <gradient
                android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:type="radial"
                android:gradientRadius="50" />
            <!-- 描边 -->
            <stroke
                android:width="2dp"
                android:color="#dcdcdc"
                android:dashWidth="5dp" 
                android:dashGap="3dp" />
            <!-- 圆角 -->
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item android:state_focused="true" >
        <shape>
            <gradient
                android:startColor="#ffc2b7"
                android:endColor="#ffc2b7"
                android:angle="270" />
            <stroke
                android:width="2dp"
                android:color="#dcdcdc" />
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item>       
        <shape>
            
<solid android:color="#ff9d77"/>
            <stroke
                android:width="2dp"
                android:color="#fad3cf" />
            <corners 
                android:topRightRadius="5dp"
                android:bottomLeftRadius="5dp"
                android:topLeftRadius="0dp"
                android:bottomRightRadius="0dp"
            />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

运行效果如下图:

一般状态:

 

获得焦点状态:

 

按下状态:

 

Android Shape的使用详解 文章目录概念什么是ShapeShape可以用来做什么?Shape的一些基础属性使用 概念 什么是Shape 官方的话来说,这是在 XML 中定义的一般形状。指向 GradientDrawable 的资源指针 Shape可以用来做什么? 快速实现一些基本图形 方型:rectangle,这也是默认的形状 椭圆型/圆:oval 线性:line环: ring,为环的时候还有些针对它才使用的一些属性. 快速实现一些圆角,渐变(线性渐变,径向渐变,扫描渐变),阴影等效果 代替图片设置为View的背景 可以减少a 阅读详情

相关推荐

西门子OMAC PackML V2022在S7-1200/S7-1500中的状态机设计与应用实践

本文详细解析了西门子OMAC PackML V2022在S7-1200/S7-1500中的状态机设计与应用实践。通过实际案例和代码示例,介绍了状态机的基础认知、硬件配置、逻辑开发、调试技巧以及与MES系统集成的高级应用,帮助工程师高效实现设备自动化控制。

weixin_29255731的博客 533

Android中shape的使用方法

参数大全: ================1=========================== solid:实心,就是填充的意思 android:color指定填充的颜色 ================2=========================== gradient:渐变 android:startColor和android:endColor分别为起始和结束颜色,

paida的专栏 670

给MATLAB安装runtime插件

输入你刚刚下载压缩包的位置(小白提示:在 此电脑 中找到压缩包位置,右键属性复制位置)(!设置好以后然后填写下面输出exe文件的信息,包括文件的名字、作者、Email、公司、概述、描述,下面还可以选择额外的安装选项,exe文件运行需要的其他文件(图像、子程序等)、提供给用户的文件(readme.txt等)(很多方法是官网下载,但在官网下载还是会版本不对应,所以直接在你所用的MATLAB里搜索安装链接最靠谱)(!5.可以打包程序了(你发送文件的人电脑里没有MATLAB也可以查看运行你的程序了)

Pei_hua100的专栏 1万+

Android中shape使用详解

1、当使用shape时我们需要在drawable文件夹下新建一个xml文件,文件的根节点为shape<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle|oval|line|ring" > </span>2、shape的取值一共有四种 rectangle(长

金鳞化龙的博客 3079

告别GPS,用Sentinel-1数据+Python实战SBAS-InSAR监测城市地面沉降(保姆级教程)

本文详细介绍了如何利用Sentinel-1数据和Python实现SBAS-InSAR技术监测城市地面沉降。通过保姆级教程,从环境配置、数据获取到干涉处理、时序分析和形变反演,逐步解析全流程技术细节,帮助读者掌握毫米级精度的形变监测方法,并以上海陆家嘴区域为例展示实际应用效果。

weixin_32771907的博客 536

从原理到代码:拆解UniFormer中动态位置嵌入(DPE)的3D卷积实现

本文深入解析了UniFormer模型中动态位置嵌入(DPE)模块的3D卷积实现原理与代码。DPE通过一个轻量的3D深度可分离卷积,替代传统静态位置编码,使模型能自动学习视频数据的时空位置关系。文章对比了其与Swin Transformer相对位置偏置的优劣,并提供了PyTorch实现代码与高级定制方案,为视频理解任务提供了高效灵活的动态位置编码解决方案。

weixin_29207149的博客 309

android shape画边框,安卓用shape画背景边框

效果图:代码:shape_rec_blue.xmlandroid:shape="rectangle">android:width="1dp"android:color="#418DF9"/>使用android:layout_width="match_parent"android:layout_height="match_parent"android:background="#F3F3...

weixin_33823399的博客 457

灰质-白质组织对比(Gray-white matter tissue contrast,GWC)计算以及可视化

GWC是深层灰质与浅表白质(superficial white matter,SWM)之间T1加权信号强度的比值,已知髓鞘中的胆固醇是T1加权信号强度的主要影响因素,因此GWC大致反映了大脑皮层和浅表白质之间的髓鞘化差异。GWC代表灰白质交界处的模糊程度,较低的GWC表明灰质和白质交界处更相似和更模糊;较高的GWC表明灰白质分界更加清楚。据之前的研究报道,局灶性皮质发育不良、颞叶癫痫、帕金森病、强迫症、精神分裂症和自闭症谱系障碍中存在灰白质交界区GWC异常增高或降低。 灰质信号强度和白质信号强度采集的示意图

xxx 733

[Android]【安卓】xml shape的使用

[Android]【安卓】xml shape的使用 本篇博客已收录到我的安卓开发小结中——点击【安卓开发小结】 使用shape可以画出一些简单图形,减少切图的使用,减小APP的体积 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;shape xmlns:android="http://schemas.android.com/apk/r...

Hy的博客 563

【Python百日进阶-Web开发-Feffery】Day385 -“一起Dash”训练营Lesson-07_利用fac构建表单(上)

文章目录前言:fac是什么?“人生苦短,我用Python;Web开发,首选Feffery!”↓↓↓ 今日笔记 ↓↓↓一、费老师课堂1.1 什么是表单1.2 页面效果1.3 课堂源码二、课后作业2.1 页面效果2.2 项目源码 前言:fac是什么? feffery-antd-components(简称fac),是国内大佬费弗里(Feffery)老师基于著名的React UI组件库ant design进行二次开发,将ant design中的诸多实用组件及特性引入Dash,帮助开发者使用极低的纯Python代

专注于医院数据分析技术与系统开发的创作与分享。 251

提升YOLOv8性能:用Swin Transformer替换Backbone的详细实现与分析【YOLOv8】

YOLOv8作为目标检测领域的最新版本,在速度和精度之间取得了良好的平衡。然而,随着计算机视觉任务的复杂性不断增加,YOLOv8的标准主干网络(Backbone)在处理高分辨率图像或多尺度目标时,可能存在一定的局限性。为了进一步提升YOLOv8的性能,我们可以引入Swin Transformer替换其主干网络,以增强模型的全局感知能力和多尺度特征提取能力。本文将详细介绍如何在YOLOv8中用Swin Transformer替换原有的Backbone,提供代码示例,并深入探讨其中的原理和效果。

博客 1717

android shape画边框,安卓用shape画圆角矩形边框

效果图:代码:一、xml方式代码: shape_rec_blue.xml圆角矩形边框android:shape="rectangle">android:width="1dp"android:color="#418DF9" />圆角矩形背景android:shape="rectangle">使用android:layout_width="match_parent"android:l...

weixin_39721853的博客 662

rk3588平台USB 3.0 -OAK深度相机适配方法

摘要:本文记录了OAK摄像头设备的配置与测试流程。主要内容包括:1)添加USB设备udev规则;2)拉取相关依赖库;3)安装Python3和pip;4)安装项目依赖;5)安装FFmpeg工具;6)测试摄像头功能并转换视频格式;7)将测试视频拷贝到U盘查看。操作步骤涵盖了从设备驱动配置到功能测试的完整流程,提供了详细的命令行操作指引。通过该文档可快速完成OAK摄像头的环境搭建和基础功能验证。

yy_hear的博客 325

安卓中shape使用总结

安卓中shape使用总结

高淳小弟的博客 539

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

android shape比例,Android shape 的使用

一.shape语法1.文件位置:res/drawable/filename.xml这个文件名就是资源ID。2.资源类型:这是一个GradientDrawable资源文件。(使用shape定义GradientDrawable的属性)3.资源引用方式:在JAVA中:R.drawable.filename在XML中 :@[package:]drawable/filename4.语法: ...

weixin_34553878的博客 572

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【Android应用】【Shape使用总结】

在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状。 首先我们了解一下Shape下面有哪些标签,都代表什么意思: solid:填充android:color指定填充的颜色 gradient:渐变android:startColor和android:endColor分别为起始和结束颜色, android:angle是渐变角度,必须为45的整数倍。另外渐变...

bear_huangzhen的专栏 11万+

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

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

Android程序Shape使用总结!

在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状。首先我们了解一下Shape下面有哪些标签,都代表什么意思:solid:填充 android:color指定填充的颜色gradient:渐变 android:startColor和android:endColor分别为起始和结束颜色,android:angle是渐变角度,必须为45的整数倍。另外渐变默认的模式为android:type=“linear”,即线性渐变,

huahaiyi的博客 4434

安卓shape使用详解

安卓shape的使用详解:http://blog.youkuaiyun.com/nature_day/article/details/52301375

jalen-qian的博客 347

Android Shape 详细使用

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_84149743的博客 1163

android shape不可用_Android shape的使用详解

写在最前:不管在什么系统中,如果你应用的图片资源比较多的话,会导致安装包较大,比如四角有弧度的长方形、圆形、正方形等等简单图形,完全没有比较实用图片,在Android中如何优雅的避免这个问题呢,就是使用shape了。1.新建文件首先在你的项目下新建drawable文件夹,你的shape xml文件就放到这个地下,然后新建Android xml文件,如图:新建xml文件2.下面来介绍一下shape的...

weixin_31938351的博客 658

android shape不可用_android shape的使用

今天,简单讲讲android里如何使用shape设计各种样式。之前,我记住在开发中也很多次使用到了shape,因为比较简单,所以一直也没有写博客进行总结。但是,最近看代码时,发现了一些shape属性还是不了解,所以在网上查找了shape的资料,这里记录一下。首先,使用shape画的图形,这个xml文件的根节点是shape,如下:android:shape="rectangle|oval|line|...

weixin_42300956的博客 626

Android Shape的使用

Android Shape 的使用 在Android开发中,我们可以使用shape定义各种各样的形状,也可以定义一些图片资源。相对于传统 图片来说,使用shape可以减少资源占用,减少安装包大小,还能够很好地适配不同尺寸的手机。 shape属性 shape 属性基本语法示例 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"

清晨的博客 787

Android中shape和selector的使用详解

shape的基本用法就是在res/drawable下定义一个xml文件用于定义shape,然后在布局控件中如Button,TextView等中用background使用shape。 先了解shape的基本属性,准备基础知识: 1、shape:可以设置的形状:rectangle:矩形, 默认为矩形;oval:椭圆;line:线;ring:环形; 2、corners:弧度,可以设置半径或者圆角,

jiangtea的博客 2436
上一篇: 动态定义toast
下一篇: android 分辨率适配与dip(dp)的使用
andych008
博客等级 码龄19年 23粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值