- 为了能够弥补帧动画和补间动画的缺陷(1.
作用对象局限:View即补间动画 只能够作用在视图
View
上,即只可以对一个Button
、TextView
、甚至是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中调用的时候这个代码调用
//这个就是activty中的代码,主要执行了寻找Animator animator = AnimatorInflater.loadAnimator(this, R.animator.alpha); animator.setTarget(imageView); animator.start();
-
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; } }
安卓 属性动画
最新推荐文章于 2023-06-12 19:37:03 发布