目标
目标是实现一个简单的轮播图,特征如下:
- 只展示本地图片
- 可以无限轮播,在第一帧时也可以向前轮播
- 可以自动轮播
code
先上代码,需要事先准备几张本地图片当素材
MainActivity:
package com.example.loopapplication;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import com.example.loopapplication.looper.LooperPagerAdapter;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
private ViewPager mViewPager;
private LooperPagerAdapter mLooperPagerAdapter;
private List<Integer> mPictures = new ArrayList<>();
private Handler mHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化数据
mPictures.add(R.mipmap.pic1);
mPictures.add(R.mipmap.pic2);
mPictures.add(R.mipmap.pic3);
mPictures.add(R.mipmap.pic4);
mPictures.add(R.mipmap.pic5);
mPictures.add(R.mipmap.pic6);
// 初始化视图
initView();
}
private void initView() {
// 找到控件
mViewPager = this.findViewById(R.id.loop_pager);
// 创建适配器
mLooperPagerAdapter = new LooperPagerAdapter();
// 控件设置适配器
mViewPager.setAdapter(mLooperPagerAdapter);
// 适配器设置数据
mLooperPagerAdapter.setData(mPictures);
// 设置数据之后要通知轮播图数据已经更新
mLooperPagerAdapter.notifyDataSetChanged();