Android之的Shape图形使用
来源:互联网 发布:2016大数据概念股龙头 编辑:程序博客网 时间:2024/06/06 19:18
在Android程序开发中,我们经常会用到Shape去定义各种各样的形状,
首先我们了解一下Shape下面有哪些标签,都代表什么意思:
solid:填充
android:color 指定填充的颜色
gradient:渐变
android:startColor 起始颜色
android:endColor结束颜色
android:angle渐变角度,必须为45的整数倍。
android:type="linear"线性渐变(默认模式)
android:type="radial"径向渐变(需要指定半径 android:gradientRadius="50")
angle值对应的位置如图:
stroke:描边
android:width="2dp"描边的宽度,
android:color描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp" 横线的宽度
android:dashGap="3dp"横线间隔
corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,
同时设置五个属性,则Radius属性无效
android:Radius="20dp" 四个角的半径
android:topLeftRadius="20dp" 左上角的半径
android:topRightRadius="20dp" 右上角的半径
android:bottomLeftRadius="20dp" 右下角的半径
android:bottomRightRadius="20dp" 左下角的半径
padding:间隔可以设置上下左右四个方向的间隔
在这里我们来看一个简单的小例子,ShapDemo,在drawable文件夹下面先定义两个xml文件:
button_bg.xml的内容如下:
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android" >
- <!-- 填充 -->
- <solid android:color="#ff9d77" /> <!-- 定义填充的颜色值 -->
- <!-- 描边 -->
- <stroke
- android:width="2dp"
- android:color="#fad3cf" /> <!-- 定义描边的宽度和描边的颜色值 -->
- <!-- 圆角 -->
- <corners
- android:bottomLeftRadius="5dp"
- android:bottomRightRadius="5dp"
- android:topLeftRadius="5dp"
- android:topRightRadius="5dp" /> <!-- 设置四个角的半径 -->
- <!-- 间隔 -->
- <padding
- android:bottom="10dp"
- android:left="10dp"
- android:right="10dp"
- android:top="10dp" /> <!-- 设置各个方向的间隔 -->
- </shape>
button_pressed_bg.xml的内容如下:
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android" >
- <!-- 渐变 -->
- <gradient
- android:endColor="#FFFFFF"
- android:gradientRadius="50"
- android:startColor="#ff8c00"
- android:type="radial" />
- <!-- 描边 -->
- <stroke
- android:dashGap="3dp"
- android:dashWidth="5dp"
- android:width="2dp"
- android:color="#dcdcdc" />
- <!-- 圆角 -->
- <corners android:radius="5dp" />
- <!-- 间隔 -->
- <padding
- android:bottom="10dp"
- android:left="10dp"
- android:right="10dp"
- android:top="10dp" />
- </shape>
这里说明一点,在描边里面设置了dash参数,使得图形的边变成了虚线
在drawable文件夹下添加一个button.xml文件,内容如下:
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:drawable="@drawable/button_pressed_bg" android:state_pressed="true"></item>
- <item android:drawable="@drawable/button_bg"></item>
- </selector>
这个文件的意思以前讲过,normal(正常)情况下就显示button_bg,被press(按下)情况下就显示button_pressed_bg。
我们再来看一下layout目录下的activity_main.xml的内容:
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/button"
- android:text="TestShapeButton" />
- </RelativeLayout>
直接将background指定为drawable文件夹下的button.xml。
程序运行截图如下:
转自:http://blog.csdn.net/bear_huangzhen/article/details/24488337
- Android之的Shape图形使用
- 【Android】Android图形之shape使用
- 【Android】Android图形之shape使用
- Android自定义图形-Shape的使用
- shape图形的使用
- android之Shape的使用
- Android之shape的使用
- Android开发之shape自定义图形
- android中使用shape自定义图形
- android界面设计之shape的使用
- Android开发之shape的使用
- Android之XML的shape使用
- Android开发之 shape的使用
- Android02--Android之Shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- iOS懒加载模式
- 【杭电oj】2180-时钟(打表,水)
- Learning Python(4)--错误处理
- 集算器序表和SQL数据表的异同
- java注解基础
- Android之的Shape图形使用
- ECSHOP模板制作中常见循环的操作方法
- php学习练手(一)
- PHP、MySql乱码解决方案
- ios触摸事件二 :事件传递
- SSH、myBatis下载地址
- 运维角度浅谈MySQL数据库优化
- dede:arclist 不能调用文章的副栏目或多个副栏目的解决方法
- JQuery移除事件