Android基础系列之资源(二)

Drawable资源

关于图片资源一般都比较清楚,下面讲其它的drawable资源


StateListDrawable资源

这种资源与先前讲的res/color/下面的状态颜色列表有点相似

使用方法:

在res/drawable/目录下创建一文件夹,我们这里假设为button_background.xml

文件里xml格式如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:state_pressed="true" android:background=“@drawable/ic_launcher”/>

        .......
</selector>

然后在xml布局文件里使用android:background="@drawable/button_background"即可,此代码实现点击按钮时按钮背景图片为ic_launcher图片


ShapeDrawable资源

定义一个基本的集合图形(矩形、椭圆、线条、圆环),并由自己控制其外观

使用方法:

在res/drawable/目录下创建一xml文件,假如为shap_drawable.xml

<?xml version="1.0" encoding="utf-8"?>

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

               android:shape=""  <!--指定几何图形形状-->

                <!--进行一些外观定制-->

</shape>


ClipDrawable资源使用方法与ShapeDrawable资源基本一样,只是根节点改为<clip></clip>


AnimationDrawable资源

定义动画的xml文件应该放到res/anim/目录下,其根节点是<set></set>

其中可以定义的子节点有<alpha/>(透明度改变) <scale/>(缩放改变) <translate/>(平移改变) <rotate/>(旋转改变)

注意:如果在一个set节点里面定义多个动画,例如定义了透明度改变动画和平移动画,那么这两个动画将是同时进行的。

           而在同一个动画xml文件里是不允许有多个set节点的。

使用方法:利用AnimationUtils类的静态方法AnimationUtils.loadAnimation(context, id)即可得到你定义的动画,得到一个Animation对象,然后使用控件的startAnimation(Animation anim)开始动画。


下面是这四种动画的一些属性及其含义

alpha节点

fromAlpha:开始动画时的透明度

toAlpha:结束动画时的透明度

duration:动画持续时间

startOffset:动画延迟时间(也就是调用startAnimation()方法要过了这段时间才会开始动画,注意:这段时间期间控件的透明度是fromAlpha指定的透明度)

注意:fillAfter即使设置为true,仍然要在java代码中再设置一次,否则动画结束并不会保持结束时那种状态,而会变为动画开始前的状态(去掉动画的原始状态,不是fromAlpha指定的透明度)

repeatCount:动画重复次数

repeateMode:动画重复模式,这个属性有两种取值restart和reverse,默认就是restart,表示在动画重复次数大于0时再次执行动画时再次从初始状态到结束状态,如果是reverse的话,表示从初始状态到结束状态(算一次动画),再从结束状态到初始状态(算一次动画),再从初始状态到结束状态......这样一直重复直到到达动画重复次数为止。


scale节点

fromXScale:开始动画时宽度的大小(1.0或者100%为原始大小)

toXScale:结束动画时宽度的大小

fromYScale:开始动画时高度的大小(1.0或者100%为原始大小)

toYScale:结束动画时高度的大小

duration:动画持续时间

pivotX与pivotY指定中心点

repeatCount与repeateMode跟alpha一样


translate节点

fromXDelta:起始x坐标位置

toXDelta:结束x坐标位置

fromYDelta:起始y坐标位置

toYDelta:结束y坐标位置

上面四个属性,如果值都是0.2或者20%这些的,表示的位置是相对于本身的位置,也就是以自己为参照物,而如果使用20%p的话,表示以上一层view为参照物,此时不能写为0.2p。

其它属性基本与其它动画一样。


rotate动画

fromDegrees:起始位置(以控件初始位置为0度,绕旋转点旋转指定度数的那个位置)

toDegrees:终止位置(以起始位置为0度,绕旋转点旋转指定度数的那个位置)

pivotX与pivotY:指定旋转点,50%、50%表示围绕控件中心点旋转,100%、100%表示围绕控件右下角点旋转

其它属性基本与其它动画一样。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值