Android--图形定制

6.1.1 形状图形

形状图形的定义文件放在drawable目录下,它是以shape标签为根节点的XML描述文件。根节点下定义了6个节点,分别是:size(尺寸)、stroke(描边)、corners(圆角)、solid(填充)、padding(间隔)、gradient(渐变),各节点的属性值主要是长宽、半径、角度以及颜色等。

new Drawable File xml文件–根标签为shape shape默认为矩形

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <!--内部填充颜色-->
    <solid android:color="#f8d714"/>
    <!--边框宽度和颜色-->
    <stroke android:color="@color/black" android:width="2dp"/>
</shape>

stroke节点

描述了形状图形的描边规格。若无stroke节点,则表示不存在描边。

常用属性说明:

  • color:颜色类型,描边的颜色。
  • dashGap:像素类型,每段虚线之间的间隔。
  • dashWidth:像素类型,每段虚线的宽度。若dashGap和dashWidth有一个值为0,则描边为实线。
  • width:像素类型,描边的厚度。

corners节点

  • bottomLeftRadius:像素类型,左下圆角的半径。
  • bottomRightRadius:像素类型,右下圆角的半径。
  • topLeftRadius:像素类型,左上圆角的半径。
  • topRightRadius:像素类型,右上圆角的半径。
  • radius:像素类型,4个圆角的半径(若有上面4个圆角半径的定义,则不需要radius定义)。

gradient节点

  • angle:整型,渐变的起始角度。为0时表示时钟的9点位置,值增大表示往逆时针方向旋转。例如,值为90表示6,点位置,值为180表示3点位置,值为270表示0点/12点位置。
  • type:字符串类型,渐变类型。渐变类型的取值说明见表
字段说明
linear线性渐变,默认值
radial放射渐变,起始颜色就是圆心颜色
sweep滚动渐变,即一个线段以某个端点为圆心做360度旋转
  • centerX:浮点型,圆心的X坐标。当android:type="'linear"时不可用。

  • centerY:浮点型,圆心的Y坐标。当android:type="linear"时不可用。

  • gradientRadius:整型,渐变的半径。当android:type="radial"时需要设置该属性。

  • centerColor:颜色类型,渐变的中间颜色。

  • startColor:颜色类型,渐变的起始颜色。

  • endColor:颜色类型,渐变的终止颜色。

  • useLevel:布尔类型,设置为true为无渐变色、false为有渐变色。

6.1.2 九宫格图片

可以选择可以拉伸放大的区域和不想放大拉伸的区域

创建方式:.png格式的照片,右击–create 9-path file

在这里插入图片描述

上方:选中区域代表可以左右拉伸的区域

下方:选中区域代表可以放置文字的区域

左侧:选中区域代表可以上下拉伸的区域

右侧:选中区域代表可以放置文字的区域

6.1.3 状态列表图形

Drawable new–xml文件–根标签selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/shape_test" android:state_pressed="true"/>
    <item android:drawable="@mipmap/ic_launcher"/>
</selector>
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/select"/>

状态列表图形不仅用于按钮控件,还可用于其他拥有多种状态的控件。

状态类型说明应用场景
state pressed是否按下按钮Button
state checked是否勾选复选框CheckBox、单选按钮RadioButton
state focused是否获取焦点文本编辑框EditText
state selected是否选中各控件通用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值