AndroidStudio安卓原生开发_UI高级_Shape的使用
bigegpt 2024-10-12 06:48 4 浏览
然后我们再来看一下android中的shape怎么用,可以看到上面就是
用shape做出来的效果.
用来做按钮的背景,等.
?
?
?
这个就是用了扫描线渐变.
上面是,对shape做了一些的,介绍和解释,我们一个个去写代码去看看,怎么用.
?
首先我们去看,线和虚线等
这个line_shape.xml
可以看到我们写了一个stroke这个指定描边,可以看到我们指定了
width是1px,就是说,线的宽度是1px
然后我们指定颜色是black黑色.
?
然后我们在activity_main.xml中,我们去写一个button,然后
我们给这个按钮的background,去设置,上面我们做的那个line_shape去.
?
设置以后,我们去看看效果,可以看到按钮的背景,出现了一个线.
?
我们放大看看.
?
然后我们给这个按钮两个文字,登录,我们再去看看
?
可以看到在登录,两个字,后面有个直线的背景.
?
然后这里我们可以给这个线,描边,设置为红色
color,设置为holo_red_dark,深红
同时,我们把这个线设置为虚线去看看,可以看到设置dashGap,这个是虚线线段之间的距离
dashWidth,这个是线段的长度是10dp我们设置.
?
可以看到效果.并没有出现我们想要的,虚线的效果对吧,怎么回事呢>?
?
因为android4.0以后,就启用了硬件加速功能,activity的硬件加速功能
我们去关闭就好了
比如上面:
我们在AndroidManifest.xml中的
activity上面设置,关闭硬件加速功能,就可以了
hardwareAccelerated = false
但是有人说如果关闭了activity的硬件加速功能,会不会影响activity的,响应速度啊,等.
那这样的话,我们还是保持activity的硬件加速功能打开.
?
然后我们在activity_main.xml的button上面,添加一个id是btn
?
然后我在MainActivi的onCreate方法中,我们去
获取这个btn按钮,然后
给这个按钮单独,启用软件加速,不用硬件加速.第二个参数传入null
?
去看看效果就有了.
这样,我们仅仅是对button,这个按钮,取消了硬件加速功能,这样不会影响整个activity的性能.
?
然后我们再去看矩形的形状,我们用solid这个,属性,指定填充的颜色是红色.
可以看到shape= rectangle
?
然后我们再去在activity_main.xml中去写一个按钮
text是注册.背景是rect_shape 这样指定就可以了.
?
然后我们去看看,有效果了,注册按钮,就有了一个我们上面去做的那个矩形的红色背景了,
但是这个时候,这个矩形是,没有圆角的不好看.
?
我们用corners这个属性,去设置一下,圆角的角度,这里设置为10dp
?
然后去看看,可以看到矩形,就有圆角了.
?
那么实际上,我们如果想要,下面没有圆角,上面有圆角,可以看到上面,我们可以单独设置,4个角的某个角
上是否有圆角.
?
然后我们再去给这个矩形,去用stroke,添加一个描边,蓝色的,1dp宽度的描边
?
去看看,就看到有个蓝色,1dp宽的描边了.
?
然后我们再去把这个描边,指定成,蓝色的虚线去.
dashGap,dashWidth
?
可以看到就有虚线了.
?
然后我们再去,看看这个矩形的,颜色的渐变
可以看到,我们这里渐变,我们首先用这个linear是线性渐变.去看看效果
可以看到我们设置了,垂直的线性渐变,所以这里angle是270度.
然后开始渐变的颜色是startColor是#f00是红色,然后中间的颜色centerColor是绿色,然后结束地方渐变的颜色是#00f蓝色
这样的话,他就会按照,先是红色,然后绿色,然后蓝色的规律,去渐变.效果没有截图可以自己运行试试
?
然后我们再去看看,我们这里渐变类型,选择radial,这个是径向渐变,
径向半径我们设置为20dp,同样,我们也设置了开始,中间,结束的渐变颜色.
?
然后我们去查看效果可以看到有效果,并且是按照,红色开始颜色,绿色中间颜色,蓝色结束颜色渐变的.
?
上面的渐变范围太小了不好看,我们弄大一点,
这个gradientRadius=200db这个渐变半径我们设置为200dp再去看看效果.
?
可以看到这样效果会明显一些了.
?
然后我们再去看一种渐变sweep,是扫描渐变.
64 .2021/5/25 8:49 .
64 .radial .n. 子午线轮胎;射线,光线 adj. 辐射状的;光线的
64 .gradient .n. 坡度,倾斜度;梯度 adj. 倾斜的
64 .Radius .半径(长度);半径(距离) 【数学】
64 .sweep .n. 打扫;延伸,伸展 v. 扫;清除;席卷;扫荡;掠过;扫视;延伸;绵延
?
然后我们为了看这个扫描渐变的效果明显,我们把这个
button按钮的高度设置成200dp
?
然后我们去看,扫描渐变的效果可以看到,他是从右边开始扫描,
从开始色红色,中间色绿色,结束色蓝色,扫描的.
要做一个GPS,雷达扫描的功能,那么用这个扫描渐变是可以用的.
?
然后我们再去看一个这个shape的熟悉,padding这个作用是什么
这里我们设置了left,right的padding是50dp,50dp
?
然后我们把渐变,先删除掉,为了看padding的效果比较方便看
?
然后我们去看看效果
?
可以看到,看不到任何效果是怎么回事呢?
?
现在我们这样做,我们把button的background指定的那个shape删除,然后添加到
LinearLayout上面,然后我们去看看效果
?
可以看到效果就有了.他是距离按钮的距离是多少.
?
其实相当于我们在LinearLayout中,添加paddingLeft/或者paddingRight这个属性,效果是一样的.
但是这个padding我们用的还真是不多.
?
然后我们再去看看shape的size属性.
?
然后我们去看看,也没有效果,这个size属性,我们几乎是用不到的.
实际上他就是没有什么用,只是可以通过shapeDriver.getInstrentHeight,width
获取设置的值而已.一般情况下,对于我们开发者来说这个size的值是没有什么用的
?
相关推荐
- Linux gron 命令使用详解(linux gminer)
-
简介gron是一个独特的命令行工具,用于将JSON数据转换为离散的、易于grep处理的赋值语句格式。它的名字来源于"grepableon"或"grepable...
- 【Linux】——从0到1的学习,让你熟练掌握,带你玩转Linu
-
学习Linux并掌握Java环境配置及SpringBoot项目部署是一个系统化的过程,以下是从零开始的详细指南,帮助你逐步掌握这些技能。一、Linux基础入门1.安装Linux系统选择发行版:推荐...
- Linux常用的shell命令汇总(linux中shell的作用)
-
本文介绍Linux系统下常用的系统级命令,包括软硬件查看、修改命令,有CPU、内存、硬盘、网络、系统管理等命令。说明命令是在Centos6.464位的虚拟机系统进行测试的。本文介绍的命令都会在此C...
- 零成本搭建个人加密文件保险柜(适用于 Win11 和 Linux)
-
不依赖收费软件操作简单,小白也能跟着做支持双系统,跨平台使用实现数据加密、防删除、防泄露内容通俗无技术门槛,秒懂秒用使用工具简介我们将使用两个核心工具:工具名用途系统支持Veracrypt创建加密虚...
- 如何在 Linux 中使用 Gzip 命令?(linux怎么用gzip命令)
-
gzip(GNUzip)是Linux系统中一个开源的压缩工具,用于压缩和解压缩文件。它基于DEFLATE算法,广泛应用于文件压缩、备份和数据传输。gzip生成的文件通常带有.gz后缀,压缩效率...
- Linux 必备的20个核心知识点(linux内核知识点)
-
学习和使用Linux所必备的20个核心知识点。这些知识点涵盖了从基础操作到系统管理和网络概念,是构建扎实Linux技能的基础。Linux必备的20个知识点1.Linux文件系统层级标...
- 谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
-
IT之家6月21日消息,谷歌ChromeOS在管理文件方面进行了改进,新增了对7z、iso和tar等格式的支持。从5月的ChromeOS101更新开始,ChromeOS...
- 如何在 Linux 中提取 Tar Bz2 文件?
-
在深入解压方法之前,我们先来了解.tar.bz2文件的本质。.tar.bz2是一种组合文件格式,包含两个步骤:Tar(TapeArchive):tar是一种归档工具,用于将多个文件或目录打包...
- 如何在 CentOS 7/8 上安装 Kitematic Docker 管理器
-
Kitematic是一款流行的Docker图形界面管理平台,适用于Ubuntu、macOS和Windows操作系统。然而,其他发行版(如CentOS、OpenSUSE、Fedora、R...
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
-
之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JD...
- 爬虫搞崩网站后,程序员自制“Zip炸弹”反击,6刀服务器成功扛住4.6万请求
-
在这个爬虫横行的时代,越来越多开发者深受其害:有人怒斥OpenAI的爬虫疯狂“偷”数据,7人团队十年心血的网站一夜崩溃;也有人被爬虫逼到极限,最后只好封掉整个巴西的访问才勉强止血。但本文作者却走...
- Ubuntu 操作系统常用命令详解(ubuntu必学的60个命令)
-
UbuntuLinux是一款流行的开源操作系统,广泛应用于服务器、开发、学习等场景。命令行是Ubuntu的灵魂,也是高效、稳定管理系统的利器。本文按照各大常用领域,详细总结Ubuntu必学...
- Linux面板8.0.54 测试版-已上线(linux主机面板)
-
Linux面板8.0.54测试版【增加】[网站]Java项目新增刷新列表按钮【增加】[网站]PHP项目-Apache-服务新增守护进程功能【增加】[网站]Python项目创建/删除网站时新增同时创建...
- 开源三剑客——构建私有云世界的基石
-
公共云原生的浪潮正在席卷这个世界,亚马逊AWS、谷歌GCP和微软的Azure年收入增长超过了30%,越来越多的公司和个人开始将自己的服务部署到云环境中,大型数据中心的规模经济带来了成本的降低,可以在保...
- 2.2k star,一款业界领先的私有云+在线文档管理系统
-
简介kodbox可道云(原KodExplorer)是业内领先的企业私有云和在线文档管理系统,为个人网站、企业私有云部署、网络存储、在线文档管理、在线办公等提供安全可控,简便易用、可高度定制的私有云产品...
- 一周热门
- 最近发表
-
- Linux gron 命令使用详解(linux gminer)
- 【Linux】——从0到1的学习,让你熟练掌握,带你玩转Linu
- Linux常用的shell命令汇总(linux中shell的作用)
- 零成本搭建个人加密文件保险柜(适用于 Win11 和 Linux)
- 如何在 Linux 中使用 Gzip 命令?(linux怎么用gzip命令)
- Linux 必备的20个核心知识点(linux内核知识点)
- 谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 如何在 Linux 中提取 Tar Bz2 文件?
- 如何在 CentOS 7/8 上安装 Kitematic Docker 管理器
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)