说到动画我想大家并不陌生,接下来就说一下Animation动画中的AlphaAnimation,这是一个改变组件透明度的类。接下来我们代码分析。
1、首先编写布局文件。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
//这里定义了一个显示图片的组件
<ImageView
android:id="@+id/image"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/car_one1"/>
</RelativeLayout>
2、接下来编写MainActivity.java文件。
package com.example.dell.bitmapproject;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.AnimationSet;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
image =(ImageView)findViewById(R.id.image);
image.setOnClickListener(new OnClickListenerImpl());
}
private class OnClickListenerImpl implements View.OnClickListener {
@Override
public void onClick(View v) {
//AnimationSet相当于一个动画的集合,true代表
AnimationSet animationSet = new AnimationSet(true);
//由完全显示-->一半透明
AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f,0.5f);
//3秒完成动画
alphaAnimation.setDuration(3000);
//将AlphaAnimation这个已经设置好的动画添加到 AnimationSet中
animationSet.addAnimation(alphaAnimation);
//启动动画
MainActivity.this.image.startAnimation(animationSet);
}
}
}
AnimationSet的作用:在实际编程中我们可能会在同一个组件上实现多种动画效果,
AnimationSet的作用就相当于一个容器盛装了我们想要实现的动画效果,当我们想显示动画效果时只需调用startAninmation(AnimationSet animationSet)方法即可。