Carousel Figure and PagerAdapter
Banner layout file
Dependence guide
<LinearLayout 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=".Main2Activity">
<com.youth.banner.Banner
android:id="@+id/banne1"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.youth.banner.Banner>
</LinearLayout>
Banner master class
public class Main2Activity extends AppCompatActivity {
Banner banner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
banner =findViewById(R.id.banne1);
ArrayList<Integer> list = new ArrayList<>();
list.add(R.drawable.tu4);
list.add(R.drawable.tu2);
list.add(R.drawable.tu3);
list.add(R.drawable.tu1);
ArrayList<String> titles= new ArrayList<>();
titles.add("标题一");
titles.add("标题二");
titles.add("标题三");
titles.add("标题四");
banner.setImages(list);
banner.setImageLoader(new ImageLoad());
banner.setBannerTitles(titles);
banner.setDelayTime(500);
banner.isAutoPlay(true);
banner.setIndicatorGravity(BannerConfig.CENTER);
banner.setBannerAnimation(Transformer.DepthPage);
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
banner.start();
}
}
Custom class inherits ImageLoader
public class ImageLoad extends ImageLoader{
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
imageView.setImageResource(Integer.parseInt(path.toString()));
}
}
Renderings
PagerAdapter layout
<RelativeLayout 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=".Main2Activity"
android:clipChildren="false"
>
<android.support.v4.view.ViewPager
android:id="@+id/view"
android:clipChildren="false"
android:layout_margin="100dp"
android:layout_width="match_parent"
android:overScrollMode="never"
android:layout_height="match_parent">
<android.support.v4.view.PagerTabStrip
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
</RelativeLayout>
PagerAdapter main class
public class Main2Activity extends AppCompatActivity {
List<ImageView> list=new ArrayList<>();
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
viewPager= findViewById(R.id.view);
ImageView imageView = new ImageView(this);
imageView.setImageResource(R.drawable.tu1);
ImageView imageView1 = new ImageView(this);
imageView1.setImageResource(R.drawable.tu3);
ImageView imageView2 = new ImageView(this);
imageView2.setImageResource(R.drawable.tu4);
list.add(imageView);
list.add(imageView1);
list.add(imageView2);
String[] strings={"标题一","标题二","标题三","标题四"};
// Fra myAdapter = new Fra(list,strings);
MyAdapter myAdapter = new MyAdapter(list, strings);
viewPager.setAdapter(myAdapter);
viewPager.setPageMargin(40);
viewPager.setOffscreenPageLimit(4);
viewPager.setPageTransformer(false,new MyViewPager());
}
class MyViewPager implements ViewPager.PageTransformer {
@Override
public void transformPage(@NonNull View view, float v) {
float man=0.65f;
float scal=man+(1-man)*(1-Math.abs(v));
if (v<0){
view.setScaleX(scal);
view.setScaleY(scal);
}else if (v==0){
view.setScaleX(1);
view.setScaleY(1);
}else if (v<=1){
view.setScaleX(scal);
view.setScaleY(scal);
}
}
}
}
adapter
public class MyAdapter extends PagerAdapter {
List<ImageView> list;String[] strings;
public MyAdapter(List<ImageView> list, String[] strings) {
this.list=list;
this.strings=strings;
}
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view==o;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView(list.get(position));
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
container.addView(list.get(position));
return list.get(position);
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return strings[position];
}
}
Renderings