可以在java檔案中設定切換影片
設定淡出影片
setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this,影片資源));
設定進入影片
setInAnimation(AnimationUtils.loadAnimation(MainActivity.this,影片資源));
設定完影片后需要指定視圖工廠
setFactory()方法,以匿名內部類為引數,需要重寫makeview()方法
在視圖轉換器中創建一個視圖,為ImageSwicher設定Factory,用來為ImageSwicher制造ImageView,定義的imageView影像在這個視圖工廠里運行.
設定監聽器setOnClickListener
xml檔案
<ImageSwitcher
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
java檔案
public class MainActivity extends AppCompatActivity {
private int[]arrayPictures =new int[]{R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04,R.drawable.img05,R.drawable.img06,R.drawable.img07,R.drawable.img08,R.drawable.img09};//宣告并初始化一個保存要顯示影像ID的陣列
private ImageSwitcher imageSwitcher;// 宣告一個影像切換器物件
private int pictutureIndex;//要顯示的圖片在圖片陣列中的Index
private float touchDownX; //左右滑動時手指按下的X坐標
private float touchUpX; //左右滑動時手指按下的X坐標
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//設定全屏顯示
imageSwitcher=findViewById(R.id.image);
//為ImageSwicher設定Factory,用來為ImageSwicher制造ImageView
imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
ImageView imageView=new ImageView(MainActivity.this);// 實體化一個ImageView類的物件
imageView.setImageResource(arrayPictures[pictutureIndex]);//根據id加載默認顯示圖片
return imageView;
}
});
imageSwitcher.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN) {
touchDownX = event.getX(); //取得左右滑動時手指按下的X坐標
return true;
}else if(event.getAction()==MotionEvent.ACTION_UP){
touchUpX= event.getX(); //取得左右滑動時手指松開的X坐標
//手指從左往右滑動,看下一張
if(touchUpX-touchDownX>100){
pictutureIndex=pictutureIndex==0?arrayPictures.length-1:pictutureIndex-1;//如果圖片是第一章圖片,從左往右滑動就是最后一張圖片,如果不是,索引往前減1
//設定圖片切換的影片
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.slide_in_left));
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.slide_out_right));
//設定當前要看的圖片
imageSwitcher.setImageResource(arrayPictures[pictutureIndex]);
//從右往左,看上一張
}else if (touchDownX - touchUpX > 100) {
//取得當前要看的圖片index
pictutureIndex = pictutureIndex == arrayPictures.length - 1 ? 0 : pictutureIndex + 1;//如果圖片是最后一張,從右往左滑動就是最后一張圖片,如果不是最后一張,右往左滑就是索引往后+1
//設定切換影片
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.slide_out_left));
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.slide_in_right));
//設定要看的圖片
imageSwitcher.setImageResource(arrayPictures[pictutureIndex]);
}
return true;
}
return false;
}
});
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/258455.html
標籤:其他
