首先当然是设置一个ViewPager控件
下一步就是再做一个需要放在pager里面的布局,因为我们想要实现图片的轮播,所以这里做一个高和宽都填充满父组件的imageview
然后就是在主页面获得viewpager的布局,然后用新建一个集合再写一个方法添加想要添加的图片,最重要的当然是写一个viewpager的适配器,然后把适配器填入刚才获取的ViewPager
package com.example.viewpager; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ViewPager viewPager; //声明Pager private LooperpagerAdapter looperpagerAdapter = new LooperpagerAdapter(); //声明Pager适配器 private ListData = new ArrayList<>(); //用于放图片的集合 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = findViewById(R.id.viewPager); //绑定Pager viewPager.setAdapter(looperpagerAdapter); //添加适配器 initData(); //图片添加到集合 } private void initData(){ Data.add(R.mipmap.img1); Data.add(R.mipmap.mig2); Data.add(R.mipmap.mig3); Data.add(R.mipmap.mig4); looperpagerAdapter.notifyDataSetChanged(); //更新数据 } private class LooperpagerAdapter extends PagerAdapter { //获得内容长度 @Override public int getCount() { return Data.size(); } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { //绑定布局 View item = LayoutInflater.from(container.getContext()).inflate(R.layout.item,container,false); //设置数据 ImageView imageView = item.findViewById(R.id.imageView); //先把imageview绑定 imageView.setImageResource(Data.get(position)); //然后在imageview中填入集合中的图片数据 if (imageView.getParent() instanceof ViewGroup){ ((ViewGroup) imageView.getParent()).removeView(imageView); } //不添加这行代码会报错,改子类已经拥有一个父类,这里我们判断如果父类是group就在父类中删除, // 如果不是就直接添加进pager里面 container.addView(imageView); return imageView; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { //删除数据 container.removeView((View) object); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object ; } } }
第一步一个可以左右滑动的图片幻灯片效果就完成了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)