动画效果是通过Animation来实现的,一共有四种,分别为:
实践:
首先在Activity的布局文件中加入一个ImageView和TextVIew
"30dp"
android:layout_height="30dp"
android:layout_centerInParent="true"
android:src="@drawable/ic_loading"
android:id="@+id/iv_loading_point"
/>
"wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_loading_text"
android:layout_below="@id/iv_loading_point"
android:layout_centerHorizontal="true"
android:text="Loading"
android:textSize="20sp"
/>
然后把需要声明的属性声明:
"30dp"
android:layout_height="30dp"
android:layout_centerInParent="true"
android:src="@drawable/ic_loading"
android:id="@+id/iv_loading_point"
/>
"wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_loading_text"
android:layout_below="@id/iv_loading_point"
android:layout_centerHorizontal="true"
android:text="Loading"
android:textSize="20sp"
/>
这里由于ImageView和TextView都使用了组合的动画效果,所以需要有两个容器AnimationSet来存放动画效果
TranslateAnimation ta = new TranslateAnimation(200,0,300,0);
ta.setDuration(5000);
RotateAnimation ra = new RotateAnimation(0,360, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
ra.setDuration(5000);
mImageAni.addAnimation(ta);
mImageAni.addAnimation(ra);
mImageAni里存放了一个TranslateAnimation也就是水平移动动画,它的参数是从哪里到哪里,这里是从200—>0,300—>0,之后调用setDuration()方法来设置动画效果持续的时间。另一个是RotateAnimation,也就是旋转动画,它的参数是从多少度到多少度,后面几个参数是从自身为基准,50%也就是中心点旋转
这两个动画效果组合起来实现了小圆球的旋转效果
ScaleAnimation sa = new ScaleAnimation(0,2.5f,0,2.5f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
sa.setDuration(5000);
AlphaAnimation aa = new AlphaAnimation(0,1);
aa.setDuration(5000);
mTextAni.addAnimation(sa);
mTextAni.addAnimation(aa);
第一个动画效果是ScaleAnimation也就是缩放效果动画,它的参数与与平移相似,从多少扩大到多少,后面的参数也是以自身为基准的50%,也就是中心。而AlphaAnimation透明动画的参数就比较简单,它的参数为透明度从多少到多少,这里是从消失到显示
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mImageView.startAnimation(mImageAni);
mTextView.startAnimation(mTextAni);
}
});
本文来源:
http://blog.csdn.net/wingichoy/article/details/47104433