@cxm-2016
2016-08-12T03:23:33.000000Z
字数 7257
阅读 2721
android no
表示一张图片
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"android:antialias="true"android:dither="true"android:filter="true"android:gravity="center"android:mipMap="true"android:tileMode="repeat"android:src="@drawable/ic_launcher"></bitmap><!--<bitmap xmlns:android="http://schemas.android.com/apk/res/android"android:antialias="true" 开启抗锯齿android:dither="true" 开启抖动效果,使得高质量图片在低分辨率手机上不会失真android:filter="true" 开启过滤效果android:gravity="center"android:mipMap="true" 开启纹理映射android:tileMode="repeat" 是否开启平铺模式,默认为「disable」不开启,其他有[clamp]边缘扩展,[repeat]复制平铺,[mirror]镜像平铺android:src="@drawable/ic_launcher"></bitmap>-->
表示一张.9格式的图片
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"android:dither="true"android:src="@drawable/my_bitmap_drawable"></nine-patch><!--<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"android:dither="true" 开启抖动效果android:src="@drawable/my_bitmap_drawable"></nine-patch>-->
表示通过颜色来构造图形
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><cornersandroid:bottomLeftRadius="10dp"android:bottomRightRadius="10dp"android:radius="10dp"android:topLeftRadius="10dp"android:topRightRadius="10dp" /><gradientandroid:angle="45"android:centerColor="#000"android:centerX="10"android:centerY="10"android:endColor="#fff"android:gradientRadius="90"android:startColor="#f0f"android:userLevel="false"android:type="linear"/><paddingandroid:bottom="10dp"android:left="10dp"android:right="10dp"android:top="10dp" /><sizeandroid:width="100dp"android:height="100dp" /><solid android:color="#ccc" /><strokeandroid:width="1dp"android:color="#666"android:dashGap="2dp"android:dashWidth="1dp" /></shape><!--<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"> 这里表示图形的形状,有四个选项:rectangle矩形「oval」椭圆「line」线性「ring」环形如果选择「line」或者「ring」的话必须明确指定<stroke><corners 四个角的弧度android:bottomLeftRadius="10dp"android:bottomRightRadius="10dp"android:radius="10dp" 统一角度优先级低,会被覆盖android:topLeftRadius="10dp"android:topRightRadius="10dp" /><gradient 与<solid>标签互斥 表示色彩渐变android:angle="45" 渐变角度,必须为45的倍数0表示从左到右 90表示从下到上。android:centerColor="#000" 渐变中间色android:centerX="10" 渐变中心点的横坐标android:centerY="10" 渐变中线点的纵坐标android:endColor="#fff" 渐变结束色android:gradientRadius="90" 渐变半径,仅当type设置为「radial」时有效android:startColor="#f0f" 渐变起始颜色android:userLevel="false"android:type="linear" 渐变的类型「linear」线性渐变 「radial」径向渐变「sweep」扫描线渐变/><paddingandroid:bottom="10dp"android:left="10dp"android:right="10dp"android:top="10dp" /><size 用于指定当前Drawable的尺寸,尽管这不是最终的显示效果android:width="100dp"android:height="100dp" /><solid android:color="#ccc" /> 纯色填充<stroke 描边android:width="1dp" 实线宽度android:color="#666" 线条的颜色android:dashGap="2dp" 虚线间隔android:dashWidth="1dp" />虚线宽度</shape>-->
构造圆环
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:innerRadius="50dp"android:shape="ring"android:thickness="10dp"android:useLevel="false"><solid android:color="#666" /></shape><!--<shape xmlns:android="http://schemas.android.com/apk/res/android"android:innerRadius="50dp" 圆环内部半径android:shape="ring" 设置为圆环图形android:thickness="10dp" 圆环厚度半径android:useLevel="false"><solid android:color="#666" /> 圆环上填充色</shape>-->
表示一种层次化的Drawable集合。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item><shape android:shape="rectangle"><solid android:color="#0ac39e" /></shape></item><item android:bottom="6dp"><shape android:shape="rectangle"><solid android:color="#fff" /></shape></item><itemandroid:bottom="1dp"android:left="1dp"android:right="1dp"><shape android:shape="rectangle"><solid android:color="#fff" /></shape></item></layer-list>
表示背景资源选择器
<selectorxmlns:android="http://schemas.android.com/apk/res/android"android:constantSize="true"android:dither="true"android:variablePadding="false"><item android:drawable="@drawable/my_bitmap_drawable"android:state_pressed="true"android:state_focused="true"android:state_accelerated="true"android:state_activated="true"android:state_active="true"android:state_checkable="true"android:state_checked="true"android:state_drag_can_accept="true"android:state_drag_hovered="true"android:state_enabled="true"android:state_first="true"android:state_hovered="true"android:state_last="true"android:state_middle="true"android:state_selected="true"android:state_single="true"android:state_window_focused="true"/></selector><!--<selectorxmlns:android="http://schemas.android.com/apk/res/android"android:constantSize="true" 内部所有元素大小固定,不依据自身设置改变android:dither="true" 开启抖动android:variablePadding="false"> 内部所有元素不再使用各自的padding,全部采用统一设置<item android:drawable="@drawable/my_bitmap_drawable"android:state_pressed="true" 按下后没有松开的状态android:state_focused="true" 获取焦点的状态android:state_accelerated="true"android:state_activated="true"android:state_active="true"android:state_checkable="true"android:state_checked="true" 表示空间被选中,一般用在CheckBoxandroid:state_drag_can_accept="true"android:state_drag_hovered="true"android:state_enabled="true" 当前组件可用android:state_first="true"android:state_hovered="true"android:state_last="true"android:state_middle="true"android:state_selected="true" 用户选择了Viewandroid:state_single="true"android:state_window_focused="true"/></selector>-->
表示一个Drawable集合,集合中的Drawable使用等级划分。
<level-list xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:drawable="@drawable/my_bitmap_drawable"android:maxLevel="10000"android:minLevel="0" /></level-list><!--<level-list xmlns:android="http://schemas.android.com/apk/res/android"><item当选择等级在10-100之间时显示此Drawableandroid:drawable="@drawable/my_bitmap_drawable"android:maxLevel="100" 最大等级不能超过10000android:minLevel="10" /> 最小等级不能小于0</level-list>-->
在Java代码中采用这种方式设置Drawable的级别
view.background.level = 90
实现两个Drawable之间的淡入淡出效果
<transition xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/drawable1" /><item android:drawable="@drawable/drawable2" /></transition>
在Java代码中采用这种方式切换Drawable
val transition = view.background as TransitionDrawabletransition.startTransition(1000)//正向渐变transition.reverseTransition(1000)//反向渐变transition.resetTransition()//重置
表示将一个Drawable嵌入到自己当中,并在四周留出间距
<inset xmlns:android="http://schemas.android.com/apk/res/android"android:drawable="@drawable/ic_launcher"android:inset="10dp"android:insetBottom="10dp"android:insetLeft="10dp"android:insetRight="10dp"android:insetTop="10dp"></inset>
表示根据自己的等级将指定的Drawable所放到一定比例
<scale xmlns:android="http://schemas.android.com/apk/res/android"android:drawable="@drawable/ic_launcher"android:scaleGravity="center"android:scaleHeight="80%"android:scaleWidth="80%" /><!--<scale xmlns:android="http://schemas.android.com/apk/res/android"android:drawable="@drawable/ic_launcher"android:scaleGravity="center"android:scaleHeight="80%" 高度缩小为原来的20%android:scaleWidth="80%" /> 宽度缩小为原来的20%-->
在java代码中随便设置一个在1-10000之间的级别
var view = findViewById(R.id.tv)view.background.level = 1