Android XML 用途汇总

android中XML的使用主要分以下几个大类

  • Animation

  • Animator

  • Drawable

  • Layout

  • Menu

  • Values

这些文件均在R中存在映射可以通过R.xxx.xxx得到映射值最后转换成我们所需的对象。

Animation

在res里建立文件夹anim用于存放所有Animation的XML资源

  • 传统补间动画
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:fillAfter="true"
    android:fillBefore="false">

    <alpha
        android:fromAlpha="1"
        android:toAlpha="0"></alpha>


    <rotate
        android:fromDegrees="0"
        android:pivotX="25%"
        android:pivotY="50%"
        android:toDegrees="180"></rotate>

    <scale
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="25%"
        android:pivotY="50%"
        android:toXScale="3"
        android:toYScale="1"></scale>

    <translate
        android:fromXDelta="-500"
        android:toXDelta="0"></translate>

</set>

可用set标签组合起来,让这些动画同时播放,也可以为单个动画指定标签,区分:前者可多动画同时进行并且可以通过android:fillAfter=“true”,android:fillBefore="false"设定动画结束停留在最后一帧率,停留第一帧值相反,后者无法设定。
注意:
pivotX,pivotY设定的是中心点,可填Integer,X%(自身宽高比例),X%p (父容器宽高比例)
取值范围:
scale : 0-1;
alpha :0-1 ;
rotate: Integer
translate : 同pivot

控件中应用

 Animation animator = AnimationUtils.loadAnimation(MainActivity.this,R.anim.s);
 btn.startAnimation(animator);

Activity中应用

overridePendingTransition(R.anim.anim_exit, R.anim.enter);

放在startActivity()后即可。

FragmentDialog中应用

参考这篇文章

使用FragmentDialog自定义底部弹出Dialog,动画无效的问题

layoutAnimation
用于listView,RecycleView控制不同的child按规定时间间隔分别播放动画

anim下建立la.xml文件

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:delay="0.2"
android:animationOrder="normal"
android:animation="@anim/alpha">
</layoutAnimation>
  • delay:指每个Item的动画开始延时,取值是android:animation所指定动画时长的倍数,取值类型可以是float类型,也可以是百分数,默认是0.5;比如我们这里指定的动画是@anim/slide_in_left,而在slide_in_left.xml中指定android:duration=”1000”,即单次动画的时长是1000毫秒,而我们在这里的指定android:delay=”1”,即一个Item的动画会在上一个item动画完成后延时单次动画时长的一倍时间开始,即延时1000毫秒后开始。
  • animationOrder:指viewGroup中的控件动画开始顺序,取值有normal(正序)、reverse(倒序)、random(随机)
  • animation:指定每个item入场所要应用的动画。仅能指定res/aim文件夹下的animation定义的动画,不可使用animator动画。

如何在控件中定义layoutAnimation

 android:layoutAnimation="@anim/la"    

在控件Xml中添加这行即可。
代码实现:

 Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.alpha);
                LayoutAnimationController controller = new LayoutAnimationController(animation);   //设置控件显示的顺序;
                controller.setOrder(LayoutAnimationController.ORDER_REVERSE);   //设置控件显示间隔时间;
                controller.setDelay(0.2f);   //为RecycleView设置LayoutAnimation
                recyclerView.setLayoutAnimation(controller);
                recyclerView.startLayoutAnimation();

这里不能直接加载la.xml。

##Animator##

同样可以是set标签

<set xmlns:android="http://schemas.android.com
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值