Android 动画-alpha(渐变透明度动画效果)
今天苦于思索应用如何美观,首先从载入页面的第一眼开始,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