Android com.youth.banner.Banner指示器样式

//圆点指示器
//binding.banner.setIndicator(new CircleIndicator(getContext()), true);
//长条指示器
//binding.banner.setIndicator(new RoundLinesIndicator(getContext()), true);
binding.banner.setIndicator(new RectangleIndicator(getContext()), true);

<com.youth.banner.Banner
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    app:banner_indicator_marginBottom="10dp"
    app:banner_indicator_normal_color="@color/gray"
    app:banner_indicator_normal_width="10dp"
    app:banner_indicator_selected_color="@color/white"
    app:banner_indicator_selected_width="11dp" />
使用 `com.youth.banner.Banner` 实现轮播图,可按以下步骤操作: #### 1. 添加依赖 在 `build.gradle` 文件中添加以下依赖: ```groovy implementation 'com.github.bumptech.glide:glide:3.7.0' implementation 'com.youth.banner:banner:1.4.9' ``` #### 2. 创建布局文件 在布局文件中添加 `Banner` 组件,它是一个自定义的 `ViewPager`,负责显示轮播图和管理 `Indicator`: ```xml <com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp" /> ``` #### 3. 编写 Java 代码 在 Java 代码中设置 `Banner` 的相关属性和方法: ```java import com.youth.banner.Banner; import com.youth.banner.BannerConfig; import com.youth.banner.Transformer; import com.youth.banner.loader.ImageLoader; import android.content.Context; import android.os.Bundle; import android.widget.ImageView; import androidx.appcompat.app.AppCompatActivity; import com.bumptech.glide.Glide; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private void playBanner(Banner banner, ArrayList<String> urls) { // 设置内置样式,共有六种可以点入方法内逐一体验使用 banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR); // 设置图片加载器 banner.setImageLoader(new MyLoader()); // 设置图片网址或地址的集合 banner.setImages(urls); // 设置轮播的动画效果,内含多种特效,可点入方法内查找后逐一体验 banner.setBannerAnimation(Transformer.Default); // 设置轮播间隔时间 banner.setDelayTime(3000); // 设置是否为自动轮播,默认是“是” banner.isAutoPlay(true); // 设置指示器的位置,小点点,左中右 banner.setIndicatorGravity(BannerConfig.LEFT) // 以上内容都可写成链式布局,这是轮播图的监听。比较重要。方法在下面 .setOnBannerListener(this) // 必须最后调用的方法,启动轮播图 .start(); } /** * 图片加载类 */ private class MyLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Banner banner = findViewById(R.id.banner); ArrayList<String> urls = new ArrayList<>(); // 添加图片地址 urls.add("image_url_1"); urls.add("image_url_2"); urls.add("image_url_3"); playBanner(banner, urls); } } ``` #### 4. 自定义圆角图片(可选) 若要将图片改成圆角,可自定义 `ImageLoader`: ```java /** * 图片加载类 */ private class MyImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } /** * 自定义圆角类 * @param context * @return */ @Override public ImageView createImageView(Context context) { RoundImageView img = new RoundImageView(context); return img; } } ``` 然后在设置图片加载器时使用自定义的 `MyImageLoader`: ```java MyImageLoader mMyImageLoader = new MyImageLoader(); // 设置图片加载器 mBanner.setImageLoader(mMyImageLoader); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值