Android 动画-alpha(渐变透明度动画效果)

2023-05-18,,

  今天苦于思索应用如何美观,首先从载入页面的第一眼开始,Android动画分为四种:alpha(渐变透明度),scale(渐变尺寸伸缩),translate(画面转换位置移动),rotate(画面转移旋转);今天先写第一个动画alpha。

  动画效果有两种实现:

  一、在xml中定义:

  alpha.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 透明度控制动画效果 alpha
浮点型值:
fromAlpha 属性为动画起始时透明度
toAlpha 属性为动画结束时透明度
说明:
0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字 长整型值:
duration 属性为动画持续时间
说明:
时间以毫秒为单位
--> <alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="5000"
/> </set>

  二、在页面Activity中声明:

Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000);

完成动画渐变透明度的参数设定后,我们就要开始在应用中使用它:

public class SplashActivity extends Activity{

    @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome); View view = View.inflate(SplashActivity.this, R.layout.welcome, null);
setContentView(view);
//动画效果参数直接定义
Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000); //动画效果从XMl文件中定义
// Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
view.setAnimation(animation);
}
}

这样我们就完成了预定的动画效果,但是我们的最终目的是动画效果完毕以后跳转到相应的页面,所以我们对动画添加了监听:

animation.setAnimationListener(new AnimationListener() {

            @Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub } @Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub } @Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
Intent intent = new Intent(SplashActivity.this,MainActivity.class);
startActivity(intent);
}
});

这样的话,我们在动画的持续时间中预加载我们的资源,当动画结束以后跳转到我们的主页面;

代码:http://pan.baidu.com/share/link?shareid=222077530&uk=3909095065

今天想做一个类似于人人的效果,实现目标为:背景图渐变,下方的文本框不随之渐变

目标图:

XML布局代码 :activity_main.xml

<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/backImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="center"
android:background="@drawable/v5_3_0_guide_pic3" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dip"
android:layout_gravity="center_horizontal|bottom"
android:padding="12dip"
android:background="#AA000000"
android:textColor="#ffffffff"
android:text="Golden Gate" />
</merge>

主页面Activity代码:MainActivity.java

public class MainActivity extends Activity {

    ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); image = (ImageView) findViewById(R.id.backImage);
// View view = View.inflate(MainActivity.this, R.id.backImage, null);
//动画效果参数直接定义
Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000); //动画效果从XMl文件中定义
// Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
image.setAnimation(animation);
animation.setAnimationListener(new AnimationListener() { @Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub } @Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub } @Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
// Intent intent = new Intent(MainActivity.this,MainActivity.class);
// startActivity(intent);
}
});
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} }

目的达到了,源码:http://pan.baidu.com/share/link?shareid=1973122666&uk=3909095065

Android 动画-alpha(渐变透明度动画效果)的相关教程结束。

《Android 动画-alpha(渐变透明度动画效果).doc》

下载本文的Word格式文档,以方便收藏与打印。