image.png
目錄
AdapterViewFlipper
AdapterViewFilpper 繼承 了AdapterViewAnimator即碗,它也會顯示 Adapter 提供的多個 View 組件蛹疯,但它每次只能顯示一個View組件交播,程序可通過showPrevious()和showNext()方法控制該組件顯示上一個板乙、下一個組件冤馏。
AdapterViewAnimator的屬性如下:
屬性|功能
android:animateFirstView|設(shè)置顯示組件的第一個View時是否使用動畫藏研。
android:inAnimation|設(shè)置組件顯示時使用的動畫孽锥。
android:loopViews|設(shè)置循環(huán)到最后一個組件時是否自動跳轉(zhuǎn)到第一個組件哼拔。
android:outAnimation|設(shè)置組件隱藏時使用的動畫引有。
實戰(zhàn)
xml文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<AdapterViewFlipper
android:id="@+id/afilper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:flipInterval="5000"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp" />
<Button
android:id="@+id/prev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="291dp"
android:layout_marginRight="291dp"
android:text="上一個"
android:onClick="prev"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/afilper"
app:layout_constraintTop_toBottomOf="@+id/afilper"
app:layout_constraintVertical_bias="0.924" />
<Button
android:id="@+id/auto"
android:layout_width="wrap_content"
android:layout_height="64dp"
android:layout_marginStart="22dp"
android:layout_marginLeft="22dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="155dp"
android:layout_marginRight="155dp"
android:text="自動播放"
android:onClick="auto"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/afilper"
app:layout_constraintTop_toBottomOf="@+id/afilper"
app:layout_constraintVertical_bias="0.705" />
<Button
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="200dp"
android:layout_marginLeft="200dp"
android:layout_marginTop="456dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="7dp"
android:text="下一個"
android:onClick="next"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />
</android.support.constraint.ConstraintLayout>
代碼文件
package com.example.user.picture;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterViewFlipper;
import android.widget.BaseAdapter;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
// 圖片資源
int[] picture = new int[]{R.drawable.p001,R.drawable.p002,
R.drawable.p003,R.drawable.p004};
AdapterViewFlipper flipper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 獲取AdapterViewFlipper
flipper = (AdapterViewFlipper)findViewById(R.id.afilper);
// 為獲取AdapterViewFlipper添加適配器
BaseAdapter adapter = new BaseAdapter() {
@Override
public int getCount() {
return picture.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 創(chuàng)建圖片控件
ImageView imageview = new ImageView(MainActivity.this);
// 為控件添加資源
imageview.setImageResource(picture[position]);
imageview.setScaleType(ImageView.ScaleType.FIT_XY);
imageview.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
return imageview;
}
};
flipper.setAdapter(adapter);
}
// 設(shè)定按鈕函數(shù)
public void prev(View source){
flipper.showPrevious();
flipper.stopFlipping();
}
// 設(shè)定按鈕函數(shù)
public void next(View source){
flipper.showNext();
flipper.stopFlipping();
}
// 設(shè)定按鈕函數(shù)
public void auto(View source){
flipper.startFlipping();
}
}
運行結(jié)果
image.png
image.png