android drawable文件,安卓中的Drawable资源文件

layer-list

layer-list 是将一系列图片叠加放置来形成所需要的图片,格式形如

叠放顺序是顺序叠加,即第一个item在最下方,最后一个item在最上方,

item可以设置的属性有

android:id="@[+][package:]id/resource_name"

android:top="dimension"

android:right="dimension"

android:bottom="dimension"

android:left="dimension" />

操作这些属性可以实现图片的错位叠加.

在实际应用中,还遇到的就是复杂边框的实现,如虚线+复制背景边框,因为虚线边框在代码中易实现,但不易做成图片,同时要实现图片的层次叠加效果,就可以写成如下形式

android:top="4dp"

android:left="4dp"

android:right="4dp"/>

android:color="#cdb78c"

android:width="1.5dp"

android:dashGap="4dp"

android:dashWidth="6dp"/>

为下部的图片设置padding,就可以使上面显示的图片留有一定的内边距

如果下部的图片是引用的,则可以把上面的图片设置为Inset Drawable 可以达到同样的效果

level-list

level-list 可以很方便地根据单一参数的变化来显示不同的图片,系统控件中如电量,网络信号强度都是用此方式来实现的,如下

view_wifi.setLevel(getWifiLevel()); 这样就省去了多分支判断的过程

transtition

Transition 可以使两张图片切换时有淡入淡出的动画效果

layout 文件中使用

android:id="@+id/button"

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:src="@drawable/transition" />

代码设置点击事件

if (ibTrans.getDrawable() instanceof TransitionDrawable){

TransitionDrawable drawable = (TransitionDrawable) ibTrans.getDrawable();

// drawable.startTransition(500);// 最终不切换图片

drawable.reverseTransition(500);

}

insert

把图片按一定内边距嵌入到控件中去

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

android:drawable="@drawable/drawable_resource"

android:insetTop="dimension"

android:insetRight="dimension"

android:insetBottom="dimension"

android:insetLeft="dimension" />

clip

progressbar 中常用的,按level 裁剪drawable 以达到显示进度的效果,注意drawable不能是.9图

android:clipOrientation="horizontal"

android:gravity="left"

android:drawable="@drawable/white_progress">

android:id="@+id/progress"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:src="@drawable/clip_progress"/>

private static final int LEVEL_MAX = 10000;

mAnimator = ObjectAnimator.ofInt(mClipDrawable, "level", target > LEVEL_MAX ? LEVEL_MAX : target);

mAnimator.start();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值