| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android常用的shape,selector,layer-list使用说明 -> 正文阅读 |
|
[移动开发]Android常用的shape,selector,layer-list使用说明 |
?shape的优势,Android开发中,使用shape可以方便的帮我们画出背景,相对于png图片来说,使用shape可以减少安装包的大小,而且能够更好的适应不同的手机; 1.shape(GradientDrawable)shape顾名思义就是形状的意思,我们在平时开发的中,应用的频率也很高,该文件是一个xml文件,并放在drawable文件夹下如res/drawable/filename.xml,那么引用方式也很简单,我们一般在控件的background使用,如android:background="@drawable/filename"; shape文件基本结构如下: <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=""> <corners /> <gradient /> <padding /> <size /> <solid /> <stroke /> </shape> 1.1<shape>标签下常见属性
属性说明
1.2<corners>标签下常见属性
属性说明
1.3<gradient>标签下属性说明
属性说明
1.4<padding>标签下属性说明
属性说明
1.5<size>标签下属性说明
属性说明
1.6<solid>标签下属性说明
属性说明
1.7<stroke>标签下属性说明
属性说明
在xml文件实现shape和用Java代码实现大同小异,他们命名规则都是相对应的,可以参考官方API文档,Drawable resources ?|? Android Developers,shape标签对应的GradientDrawable类; 2.图层列表layer-list(LayerDrawable )layer-list顾名思义就是分层的意思,我们在平时开发的中,应用的频率也很高,该文件是一个xml文件,并放在drawable文件夹下如res/drawable/filename.xml,那么引用方式也很简单,我们一般在控件的background使用,如android:background="@drawable/filename"; LayerDrawable 是管理其他可绘制对象阵列的可绘制对象。列表中的每个可绘制对象按照列表的顺序绘制,列表中的最后一个可绘制对象绘于顶部。每个可绘制对象由单一元素内的元素表示。我们需要注意的是layer-list中有item的先后顺序会影响展示效果,不同顺序的效果可能大相径庭,因为,后面的item总是在之前的item之上并覆盖显示; 2.1layer-list文件结构
2.1<layer-list>标签下属性说明
属性说明
2.2<item>标签下属性说明
属性说明
在xml文件实现layer-list和用Java代码实现大同小异,他们命名规则都是相对应的,可以参考官方API文档,Drawable resources ?|? Android Developers,layer-list标签对应的LayerDrawable类; 3.选择器selector根据控件不同的状态显示不同的背景; selector顾名思义就是选择器的意思,我们在平时开发的中,应用的频率也很高,该文件是一个xml文件,并放在drawable文件夹下如res/drawable/filename.xml,那么引用方式也很简单,我们一般在控件的background使用,如android:background="@drawable/filename"; 3.1selector文件结构 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > ? ? <item /> </selector> 3.1<selector>标签下属性说明
属性说明
3.2<item>标签下属性说明<item ? ? ? ? android:drawable="@[package:]drawable/drawable_resource" ? ? ? ? android:state_pressed=["true" | "false"] ? ? ? ? android:state_focused=["true" | "false"] ? ? ? ? android:state_hovered=["true" | "false"] ? ? ? ? android:state_selected=["true" | "false"] ? ? ? ? android:state_checkable=["true" | "false"] ? ? ? ? android:state_checked=["true" | "false"] ? ? ? ? android:state_enabled=["true" | "false"] ? ? ? ? android:state_activated=["true" | "false"] ? ? ? ? android:state_window_focused=["true" | "false"] /> 属性说明
在xml文件实现selector和用Java代码实现大同小异,他们命名规则都是相对应的,可以参考官方API文档,Drawable resources ?|? Android Developers,selector标签对应的StateListDrawable类; 4.shape,layer-list,selector使用实践
4.1shape使用示例矩形实线边框-内填充(rect_solid_border.xml) <!--矩形实线边框-内填充--> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:color="@android:color/holo_red_dark" android:width="2dp"/> <solid android:color="@android:color/holo_blue_light" /> </shape> ?矩形虚线边框-内填充(rect_dashed_border.xml) <?xml version="1.0" encoding="utf-8"?> <!--矩形虚线边框-内填充--> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:color="@android:color/holo_red_light" android:width="2dp" android:dashGap="5dp" android:dashWidth="10dp"/> <solid android:color="@android:color/holo_green_light"/> </shape> 圆角矩形-有边框有填充(rect_rounded_border_and_fill.xml) <!--圆角矩形-有边框有填充--> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:width="2dp" android:color="@android:color/holo_red_light" /> <solid android:color="@color/purple_200" /> <corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" /> </shape> 矩形圆角+左右两边为一个圆弧(rect_rounded_top_bottom_arc.xml) <?xml version="1.0" encoding="utf-8"?> <!-- 矩形圆角+左右两边为一个圆弧 --> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <size android:width="20dp" android:height="60dp" /> <solid android:color="#8000ff00" /> <!-- 圆角半径是高度的一般就是一个圆弧了 --> <corners android:radius="20dp" /> </shape> ??????矩形内部填充-扫描渐变(rect_gradient_sweep.xml) <?xml version="1.0" encoding="utf-8"?> <!-- 矩形内部填充-扫描渐变 --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:useLevel="true"> <!--如果布局中没有设置View的大小,会size设置的大小为默认值--> <size android:width="20dp" android:height="20dp" /> <stroke android:width="1px" android:color="#ffff00ff" /> <!--调整angle不能实现角度变化 centerX,centerY是中心点的位置,这里用的是百分比值(0-1) 在rect中gradientRadius无效--> <gradient android:angle="0" android:centerX="0.5" android:centerY="0.5" android:startColor="#ff00ff00" android:gradientRadius="20dp" android:type="sweep" /> </shape> 圆环-仅有边框(ring_border.xml) <?xml version="1.0" encoding="utf-8"?> <!-- 圆环-仅有边框 --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="ring" android:innerRadius="20dp" android:thickness="16dp" android:useLevel="false"> <!--android:useLevel="false"必须是false--> <size android:width="80dp" android:height="80dp" /> <stroke android:width="3dp" android:color="#ffff00ff" /> </shape> 5.总结
参考: Drawable resources ?|? Android Developers Android XML shape 标签使用详解(apk瘦身,减少内存好帮手) - popfisher - 博客园 Android GradientDrawable(shape标签定义) 静态使用和动态使用(圆角,渐变实现) - popfisher - 博客园 Android开发:shape和selector和layer-list的(详细说明)_陈三哥的博客-CSDN博客_android layer-list????? 安卓中常用的shape,selector,layer-list - 可乐鸭头 - 博客园 Android View — Gradient 渐变 - 简书 Android的ShapeDrawable和GradientDrawable源码解析 - 菜鸟学院 Android可绘制对象资源之shape和layer-list使用_Code4Android-CSDN博客 ? |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:34:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |