界面:
图片资源
1.布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/taobaobg"
>
<ViewFlipper
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/messsage_viewflipper"
>
</ViewFlipper>
</LinearLayout>
2.
package com.viewflipper;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ViewFlipper;
import com.zengjx.androidbaseproject.R;
public class MessageActivity extends AppCompatActivity {
final private int MSG=1;//消息代码
private ViewFlipper viewFlipper;
private Animation [] animations=new Animation[2]; //定义动画数组,为ViewFlipper指定切换动画
private Message message;
private int[] images=new int[]{R.drawable.taoboimg1,R.drawable.taoboimg2,
R.drawable.taoboimg3,R.drawable.taoboimg4,
R.drawable.taoboimg5,R.drawable.taoboimg6,
R.drawable.taoboimg7,R.drawable.taoboimg8,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.message);
viewFlipper=findViewById(R.id.messsage_viewflipper);//获取ViewFlipper
animations[0]= AnimationUtils.loadAnimation(this,R.anim.slide_in_left);//左进
animations[1]= AnimationUtils.loadAnimation(this,R.anim.slide_out_right);//右出
viewFlipper.setInAnimation(animations[0]);//添加进入动画效果
viewFlipper.setOutAnimation(animations[1]);//添加退出动画效果
for(int i=0;i<images.length;i++){//遍历图片资源
ImageView imageView =new ImageView(this); //创建ImageView对象
imageView.setImageResource(images[i]); //将遍历的图片保存在ImageView中
viewFlipper.addView(imageView);// //加载图片
}
message= Message.obtain(); //获得消息对象
message.what=MSG;//设置消息代码
mHandler.sendMessage(message);
}
private Handler mHandler = new Handler(new Handler.Callback() {//创建android.os.Handler对象
@Override
public boolean handleMessage(Message msg) {
switch (msg.what){
case 1:
viewFlipper.showPrevious();//显示下一张
break;
}
message=mHandler.obtainMessage(MSG);//获取要发送的消息
mHandler.sendMessageDelayed(message,3000);//延时3秒发送消息
return false;
}
});
}