安卓 属性动画

  • 为了能够弥补帧动画和补间动画的缺陷(1.
     作用对象局限:View即补间动画 只能够作用在视图View上,即只可以对一个ButtonTextView、甚至是LinearLayout、或者其它继承自View的组件进行动画操作,但无法对非View的对象进行动画操作,
  • 2
    . 没有改变View的属性,只是改变视觉效果

    3. 动画效果单一,只有这几个

    了解决补间动画的缺陷,在 Android 3.0(API 11)开始,系统提供了一种全新的动画模式:属性动画(Property Animation
  • 在安卓3.0的时候新出了一个动画是属性动画
  • 属性动画Property) 控制属性来实现动画。
    特点:最为强大的动画,弥补了补间动画的缺点,
    实现位置+视觉的变化。并且可以自定义插值器,实现各种效果,真正的修改了自己的属性:看代码
  • 不仅可以在Java代码中实现属性动画,属性动画和过去的补间动画一样,都可以在XML中编写。在XML中编写好,在某些情况下还能重用。
    首先要在res下创建一个animator文件夹,注意这是在R文件夹下建立abimator而不是anim,这是属性动画创建的东西不一样,切记切记。
  • 1.首先建一个animtor文件
  • <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <objectAnimator
    android:duration="400"
        android:valueFrom="400dp"
        android:valueTo="0dp"
        android:valueType="floatType"
        android:propertyName="translationY"/>
    
    </set>
    二、activty中的代码
  •     
        
    android:duration:动画持续时间; android:propertyName:动画类型; android:repeatCount:重复次数,-1为一直重复; android:repeatMode:重复模式: reverse(从结束的位置继续), restart(从新开始); android:valueFrom:起始值; android:valueTo:结束值。 android:valueType:值类型
  • //这是activty中的代码
    • 在Java中调用://注意在java中调用的时候这个代码调用
    Animator animator = AnimatorInflater.loadAnimator(this, R.animator.alpha);
    animator.setTarget(imageView);
    animator.start();
    //这个就是activty中的代码,主要执行了寻找
  • public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private Button btn;
        Animator objectAnimator;
        private ImageView ima;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ima=(ImageView) findViewById(R.id.id_ball);
    
    
    
            objectAnimator = AnimatorInflater.loadAnimator(MainActivity.this, R.animator.objectanim);
            objectAnimator.setTarget(ima);
            objectAnimator.start();
    
    
        }
    
        @Override
        public void onClick(View v) {
            dra.openDrawer(GravityCompat.START);
    
    
        }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.toolmenu, menu);
            return true;
        }
    
    }
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值