目录
一、效果展示
Android Banner2.2.2 实现横向重叠
二、GitHub
GitHub - youth5201314/banner: 🔥🔥🔥Banner 2.0 来了!Android广告图片轮播控件,内部基于ViewPager2实现,Indicator和UI都可以自定义。
借用Banner2.2.2
三、具体实现
1、导入依赖
implementation 'io.github.youth5201314:banner:2.2.2'
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
implementation 'com.google.android.material:material:1.1.0'
allprojects {
repositories {
maven { url 'https://jitpack.io' }
maven { url "https://s01.oss.sonatype.org/content/groups/public" }
}
}
2、依赖导入异常可能原因
【1】Error inflating class com.youth.banner.Banner
检查是否导入material依赖
使用com.youth.banner.Banner插件报错InflateException的解决方案-爱代码爱编程https://icode.best/i/06282640269036
【2】This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled” Code Answer’s
3、创建Banner控件
<com.youth.banner.Banner
android:id="@+id/banner1"
android:layout_width="300dp"
android:layout_height="380dp"
app:banner_auto_loop="false"/>
4、创建Banner的Adapter
@Override
public FruitViewHolder onCreateHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.furit_bannner_item, parent, false);
return new FruitViewHolder(view);
}
@Override
public void onBindView(FruitViewHolder holder, LNBEBean data, int position, int size) {
holder.imageView.setImageResource(data.getImg());
holder.textView.setText(data.getName());
}
5、Banner使用
mBanner = findViewById(R.id.banner1);
mBanner.setAdapter(new LNBEBannerAdapter(mFruitList, iClickPlayPauseListener));
//添加魅族效果
mBanner.setBannerGalleryMZ(13);
mBanner.addOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Log.e("kk", "onPageSelected_position = " + position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
PS:表白杨洋,杨洋真的太帅啦!!!