Shape--------详解和运用

Android Studio属性学习(一)——shape属性 一、前提 在这里会讲解shape属性的各个元素,以及效果展示及使用 二、目标 shape 三、内容 1、首先创建一个shape.xml文件以及在布局文件中添加一个按钮用来展示添加属性后的样式 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/... 阅读详情

一、概述

最近太忙了,几乎每天都在做项目
在我们开发中,会经常遇到shape这种属性,这种属性可以在没有美工的情况照样可以实现我们想要的效果。自动动手,丰衣足食。

二、效果图

这里写图片描述

二、属性

shape描述
rectangle矩形(默认)
oval椭圆
line直线
ring环形

三、基本属性

基本属性描述
Corners圆角
Solid内部填充颜色
Gradient渐变色
Stroke这是描边属性,可以定义描边的宽度,颜色,虚实线等
Size定义控件大小
padding内部边距
  • Corners

    Android:radius=”dimension” 全部的圆角半径
    android:topLeftRadius=”dimension” 左上角的圆角半径
    android:topRightRadius=”dimension” 右上角的圆角半径
    android:bottomLeftRadius=”dimension” 左下角的圆角半径
    android:bottomRightRadius=”dimension” 右下角的圆角半径

  • Solid

    android:color=”color” 填充颜色

  • Gradient

    android:type=[“linear” | “radial” | “sweep”] 3中渐变类型,线性渐变(默认)/放射渐变/扫描式渐变
    android:angle=”integer” 渐变角度,必须为45的倍数,0为从左到右,90为从上到下 (只对线性渐变有效)
    android:centerX=”float” 渐变中心X的相当位置,范围为0~1
    android:centerY=”float” 渐变中心Y的相当位置,范围为0~1
    android:startColor=”color” 渐变开始点的颜色
    android:centerColor=”color” 渐变中间点的颜色,在开始与结束点之间
    android:endColor=”color” 渐变结束点的颜色
    android:gradientRadius=”float” 渐变的半径,只有当渐变类型为radial时才能使用
    android:useLevel=[“true” | “false”] /> 使用LevelListDrawable时就要设置为true。设为false时才有渐变效果

  • stroke

    android:width=”dimension” 描边的宽度
    android:color=”color” 描边的颜色
    以下两个属性设置虚线
    android:dashWidth=”dimension” 虚线的宽度,值为0时是实线
    android:dashGap=”dimension” 虚线间隔

  • size

    android:width=”dimension” 控件宽度
    android:height=”dimension” 控件高度

  • padding

    android:left=”dimension” 左
    android:top=”dimension” 上
    android:right=”dimension” 右
    android:bottom=”dimension” 下

  • 特殊

    • ring(环形特有属性)

    android:innerRadius 尺寸,内环的半径。
    android:thickness 尺寸,环的厚度
    android:innerRadiusRatio 浮点型,以环的宽度比率来表示内环的半径,
    例如,如果android:innerRadiusRatio,表示内环半径等于环的宽度除以5,这个值是可以被覆盖的,默认为9.
    android:thicknessRatio 浮点型,以环的宽度比率来表示环的厚度,例如,如果android:thicknessRatio=”2”,
    那么环的厚度就等于环的宽度除以2。这个值是可以被android:thickness覆盖的,默认值是3.
    android:useLevel boolean值,如果当做是LevelListDrawable使用时值为true,否则为false.

四、问题

在xml里面已经设置BackGround已经为shape属性了。如果在代码在设置BackGround会把shape的属性覆盖掉,我们怎么能保证shape属性不变,又可以切换颜色那?当然定义多个shape.xml也可以实现的。

我可以通过 GradientDrawable这个类来实现我们的想要的效果

 findViewById(R.id.rectangle).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            position++;
            GradientDrawable myGrad = (GradientDrawable) allRectangle.getBackground();
            switch (position % 6) {
                case 0:
                    myGrad.setColor(Color.argb(255, 249, 122, 3));
                    break;
                case 1:
                    myGrad.setColor(Color.argb(255, 240, 94, 63));
                    break;
                case 2:
                    myGrad.setColor(Color.argb(255, 96, 79, 171));
                    break;
                case 3:
                    myGrad.setColor(Color.argb(255, 36, 198, 89));
                    break;
                case 4:
                    myGrad.setColor(Color.argb(255, 94, 92, 93));
                    break;
                case 5:
                    myGrad.setColor(Color.argb(255, 65, 179, 205));
                    break;
            }
        }
    });

这样就可以实现我们想要的效果了。

五、总结

上面这些基本上是shape属性所有用法了,没有美工我照样可以做出好看的效果!

六、源码

点击下载

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

相关推荐

CShape

CShape

shape算法分析

已完成shape算法分析,需要私。

mzp4696830的博客 263

Diffix3D+复现

上下载模型,将其放在一个目录中,并将目录名填在demo代码中from_pretrained的cache_dir参数里。目录结构应该是"<PATH>/nvidia/difix/…给的requirements文件中pytorch和xformers的版本没有指定,这里测试过以下版本,可以成功运行。将readme中的demo代码新建一个python脚本复制进去,然后将脚本放在src目录中运行。如果遇到网络问题无法加载huggingface上的预训练模型,可以手动从。如果出现,以下错误重新。

NeverMakeIt的博客 1085

shape的基本用法

小源 我梦想那么大,我却离的那么远.... 目录视图 摘要视图 订阅 优快云日报20170403 ——《该不该离职?它说了算!》    程序员你的职场该这么规划!    Python数据分析与机器学习    博客搬家,有礼相送 Android shape属性详解 标签: shape 20

ZhiGuoWen的博客 2341

TM1621/HT1621 段码LCD驱动器

TM1621 LCD 驱动器

qq_45325304的博客 1万+

《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第一篇:开发环境准备

vue3入门实战:环境准备篇

感谢阅读 1385

Android给控件自定义边框和阴影

所谓添加阴影,就是两个画布从重叠,上方的画布小于下方的画布,阴影颜色为下方的画布的颜色。 item 中shape 的属性 (rectangle:矩形;line:线性;oval:椭圆;ring:环形),默认为矩形    corners    //设置圆角幅度,必须是在shape=rectangle的时候,corners才有效                 corners   

木神不木的博客 1万+

uniapp(全端兼容) - 最新详细实现双色球开奖走势图功能组件,uni-app红球走势图/蓝球走势图,解决双色球 “蓝球连线“ 问题,双色球效果及用线连接每个号码详细教程(同样适用于彩票开奖走势图

uni-app,双色球,安卓app,苹果app,微信小程序,移动端,H5网页,手机网站,微信小程序、支付宝小程序,手机app端,nvue,红球走势,蓝球走势,连线,uniapp(vue):js实现双色球开奖走势图带连线,vue2,vue3,uniApp双色球组件插件,uniapp如何实现双色球走势图和连线,彩票走势图,前端 Vue实现彩票走势图,详细示例,走势图,彩票项目,绘制股票走势图,前端 JS实现彩票开奖走势图 连线,Uniapp有没有双色球的页面代码,红球蓝球的走势图如何做,双色球红球和值尾走势图,

✅ 精选推荐文章 3345

Android样式之shape标签(基础)

shape

QG 4034

基于STM32设计的心率脉搏测量仪(项目资料ID:9)

本设计基于STM32F103单片机开发了一款便携式心率脉搏测量仪,通过光电传感器采集脉搏信号,经放大(约1200倍)、滤波(低通及四阶低通滤波)、比较及偏置电压调理后,由STM32进行ADC采样与数据处理。硬件采用Altium Designer设计,包含信号调理电路(限定心率范围43.4-800次/分钟)及电源管理模块;软件基于STM32CubeMX开发,利用队列存储和时间间隔平均算法优化精度,实现多终端显示(OLED实时心率/动画、MATLAB波形分析、蓝牙传输至手机)。系统支持自动启停(检测脉搏启

以培养嵌入式工程师为己任 1万+

基于Python的智能动漫更新监控爬虫系统:从原理到实战

本文详细介绍了如何使用Python构建一个智能化的动漫更新监控系统,涵盖从基础爬虫到高级自动化监控的全套解决方案。文章将深入探讨最新的网络爬虫技术,包括异步请求、反反爬策略、智能解析算法等,并提供完整的代码实现和性能优化方案。通过本系统,用户可以实时获取多个动漫平台的更新信息,并通过多种渠道接收通知。关键词:Python爬虫、动漫监控、自动化通知、异步爬虫、反反爬策略。

2201_76125261的博客 902

python中shape的运用

文章目录shape()的使用 shape()的使用 shape()函数返回

qq_43610614的博客 5137

YoloV8改进策略:主干网络篇|MobileNetV4主干替换YoloV8的BackBone(独家原创)

今年,轻量级王者MobileNetV4闪亮登场!在我们这篇文章里,我们把MobileNetV4加入到了YoloV8中,替换原有的BackBone。哈哈,你猜怎么着?效果超赞!文章里详细记录了改进过程,给那些正在为创新点子发愁的小伙伴们提供了满满的灵感。嘿,想要发表关于轻量级改进的论文?这篇文章绝对是你的首选参考!

m0_47867638的博客 3192

Shape详解

引言 我们在开发中经常会对按钮或者布局等进行一些颜色或者形状方面的设置,这个时候Android为我们提供了使用xml就可以设置的方式----shape。并且使用shape文件可以减少图片资源的应用,减小安装包的大小。 小例子 使用shape画一个圆角的button 第一步,在drawable文件夹下创建文件shape_test.xml shape_test.xml <?xml version...

Dimanche的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

NTscan扫描工具

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

Android shape的用法详解

一、什么是Shape属性 在项目中经常会给控件定义背景,有时候有些界面可以叫UI做好,但如何显示的更加的贴近用户,则需要我们客户端去优化。 如果在设置背景Android:background=“图片、颜色”,设置单一的属性并不能带来更好的体验。我们此时就可以使用shape属性作为控件的背景。 shape怎么弄? 1. 在res/drawable下新建一个xml文件; 2. 在代码中引用这个xml文件,引用方式和图片一样。 shape有哪些功能? corners ———-圆角 gradi

Android 领域开发程序员,希望通过写博客的方式不断的总结提升自己,大家共同进步哦! 5787

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

运用shape绘制图形

shape的作用在Android程序开发中,我们有时想使用特别的图形,而android studio中提供的图形有限,这时就可以使用Shape这个东西去定义各种各样的形状,Android允许通过xml定义资源,常见的有string、id、integer、dimen等、也可以定义一些图片资源。用shape可以做几何的矢量图,使界面更加有特色。

ye1831的博客 1063

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

image.shape[] 和array.shape[]的含义

array.shape表示array的组成情况 shape[0],shape[1],shape[2],shape[3]…表示array不同层次的元素数量 从shape[0]-shape[1]表示的是array从外到内的组成元素个数 举例如下 定义如下数组 dem1 dem1 = np.array([[[ 0., 0., 0., 0., 0., 0., 0., 0.], ...

小张快冲 9851

Android中shape和selector的使用详解

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

jiangtea的博客 2436

CSS3 Shape详解

目录 一、 CSS Shapes简介 1、 功能简介 2、 浏览器支持 目前支持以下版本: 二、 怎样使用CSS Shapes 1、 shape-outside属性 2、Shape的参考盒模型 三、 CSS Shapes拓展 1、 利用图片来定义一个形状 四、 Shape工具 方块套方块:这是我们网页一直以来的样子。通过使用CSS,我们一...

cwyp18809的博客 3322

python中shape_基于Python对数据shape的常见操作详解

这一阵在用python做DRL建模的时候,尤其是在配合使用tensorflow的时候,加上tensorflow是先搭框架再跑数据,所以调试起来很不方便,经常遇到输入数据或者中间数据shape的类型不统一,导致一些op老是报错。而且由于水平菜,所以一些常用的数据shape转换操作也经常百度了还是忘,所以想再整理一下。一、数据的基本属性求一组数据的长度a = [1,2,3,4,5,6,7,8,9,10...

weixin_39914868的博客 1484

SHAPE 文件格式详解

SHAPE 文件格式详解: SHAPE 文件格式 SDE,ARC/INFO,PC ARC/INFO,Data Automation Kit(DAK)和ArcCAD软件提供了shape 到coverage的数据转换器,ARC/INFO同样提供了coverage到shape的转换器。为了和其他数据格式交换,shape文件的格式在本报告中被出版。其他数据流,比如来自全球定位系统(GPS)接收机的数...

weixin_30877227的博客 3949

[整理]Selector、shape详解

Selector、shape详解(一) Selector的结构描述:     http://schemas.android.com/apk/res/android" >                     android:color="hex_color"             android:state_pressed="true/false"  “true”表示按下状态

u014593566的专栏 2333
上一篇: 三级缓存
下一篇: RecyclerView的简单使用
有志青年L
博客等级 码龄10年 30粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值