• Android Studio图形基础(AS开发实战第二章学习笔记)


    图形基础

    一、drawable

    在代码中引用drawable文件可分为两种情况

    (1)使用setBackgroundResource和setImageResource方法,可直接在参数中指定drawable文件的资源ID,例如R.drawable.***

    (2)使用setBackgroundDrawable、setImageDrawable和setCompoundDrawables等方法,参数是Drawable对象,这时得先从资源文件中生成Drawable对象,示例代码如下:

    Drawable drawable = getResources().getDrawable(R.drawable.apple);

    二、状态列表

    Button按钮在正常情况下是凸起的,在按下时是凹陷的,从按下到弹起的过程,用户便能知道点击了这个按钮。根据不同的触摸情况变更图形显示,这种情况会用到Drawable的一个子类StateListDrawable,该子类在XML文件中定义不同状态时呈现的图形列表,下面是一个状态列表图形的drawable文件:

    <selector xmlns:android="http://schemas.android.com/apk/res/android">

      <item android:state_pressed="true" android:drawable="@drawable/button_pressed"/>

      <item android:drawable="@drawable/button_normal"/>

    </selector>

    state_pressed的值为true时表示按下时显示button_selected图像,其余情况显示button_normal图像。

    StateListDrawable不仅用于Button控件,而且可以用于其他拥有不同状态的控件,取决于开发者对StateListDrawable状态类型的定义。

    状态类型的取值说明

    状态类型 说明 常用的控件
    state_pressed 是否按下 按钮Button
    state_checked 是否勾选 单选框RadioButton,复选框CheckBox
    state_focused 是否获取焦点 文本编辑框EditText
    state_selected 是否选中 各控件均可

    三、形状图形

    形状图形的定义文件以shape元素为根节点,根节点下定义了6个节点,corners,gradien,padding,size,solid,stroke

    1.shape

    shape是XML文件的根节点,用来描述该形状图形是哪种几何图形。

    ·shape:字符串类型,图形的形状,取值说明如下:

      rectangle 矩形,默认值

      oval 椭圆,此时corners节点会失效

      line 直线,此时必须设置stroke节点,不然会报错

      ring 圆环

    2.corners:用来描述4个圆角的规格定义,若无corners节点,则无圆角

    bottomLeftRadius:像素类型,左下圆角的半径

    bottomRightRadius

    topLeftRadius

    topRightRadius

    radius:像素类型,圆角半径

    3.gradien:用来描述形状内部的颜色渐变定义,若无gradien节点,表示没有渐变效果

    angle:整型,渐变的起始角度,为0时表示时钟的9点位置,值增大表示往逆时针方向旋转,例如,值为90表示6点位置,值为180表示3点位置,值为270表示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有渐变色

    4.padding:用来描述形状图形与周围视图的间隔大小,若无padding节点,则表示四周不设间隔

    bottom:像素类型,与下边的间隔

    left

    right

    top

    5.size:用来描述图形的尺寸大小(宽度和高度),若无size节点,则表示宽高自适应

    height:像素类型,图形高度

    width

    6.solid:用来描述形状图形内部的填充色彩,若无solid节点,则表示无填充颜色

    color:颜色类型,内部填充的颜色

    7.stroke:用来描述形状图形四周边线的规格定义,若无stroke节点,则表示不存在描边

    color:颜色类型,描边的颜色

    dashGap:像素类型,每段虚线之间的间隔

    dashWidth:像素类型,每段虚线的宽度(若dashGap和dashWidth有一个值为0,则描边为实线)

    width:像素类型,描边的厚度

     

    一个shape的实例

    <shape xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="#ffdd66"/>

      <stroke

        android:width="1dp"

        android:color="#ffaaaaaa"/>

      <corners

        android:bottomLeftRadius="10dp"

        android:bottomRightRadius="10dp"

        android:topLeftRadius="10dp"

        android:topRightRadius="10dp"/>

    </shape>

  • 相关阅读:
    文档测试
    浅谈兼容性测试
    配置测试
    测试产品说明书
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/Briddle-ch/p/8331188.html
Copyright © 2020-2023  润新知