Android通过Banner获取网络图片实现轮播图

1、在Module的build.gradle文件导入依赖

    //banner
    implementation 'com.youth.banner:banner:2.1.0'
    //glide图片加载器
    implementation 'com.github.bumptech.glide:glide:4.15.1'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'

2、在settings.gradle文件加入下面几行代码

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        jcenter()//添加的代码
        mavenCentral()
        maven { url 'https://jitpack.io' }//添加的代码
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        jcenter()//添加的代码
        mavenCentral()
        maven { url 'https://jitpack.io' }//添加的代码
    }
}

3、在AndroidManifest.xml文件加入网络权限

<uses-permission android:name="android.permission.INTERNET"/>

4、在布局文件中写入banner控件,代码如下

<com.youth.banner.Banner
   android:id="@+id/banner"
   android:layout_width="match_parent"
   android:layout_height="200dp"/>

5、适配器代码

import android.content.Context;
import android.os.Build;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;
import com.youth.banner.adapter.BannerAdapter;
import com.youth.banner.util.BannerUtils;

import java.util.List;

public class ImageBannerAdapter extends BannerAdapter<String,ImageBannerAdapter.ImageHolder> {

    private Context context;

    public ImageBannerAdapter(Context context,List<String> datas) {
        super(datas);
        this.context = context;
    }

    @Override
    public ImageBannerAdapter.ImageHolder onCreateHolder(ViewGroup parent, int viewType) {
        ImageView imageView = (ImageView) BannerUtils.getView(parent, R.layout.item_imageview_layout);
        if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
            BannerUtils.setBannerRound(imageView,6f);
        }
        return new ImageHolder(imageView);
    }

    @Override
    public void onBindView(ImageBannerAdapter.ImageHolder holder, String url, int position, int size) {
        Glide.with(context)
                .load(url)
                .centerCrop()
                .thumbnail(Glide.with(context).load(R.mipmap.ic_launcher))
                .into(holder.imageView);
    }

    public class ImageHolder extends RecyclerView.ViewHolder {
        public ImageView imageView;
        public ImageHolder(@NonNull View itemView) {
            super(itemView);
            this.imageView = itemView.findViewById(R.id.image);
        }
    }
}

 6、MainActivity代码如下

private Banner banner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        banner = (Banner) findViewById(R.id.banner);
    }

    ArrayList<BannerBean> bannerBeans = new ArrayList<>();
        ArrayList<String> bannerBeans = new ArrayList<>();
        //添加获取网络的图片,在浏览器上搜索一下就有很多图片,就不举例了
        bannerBeans.add("1.jpg");
        bannerBeans.add("2.jpg");
        bannerBeans.add("3.jpg");
        
        //创建适配器
        ImageBannerAdapter imageBannerAdapter = new ImageBannerAdapter(this, bannerBeans);
        banner.setAdapter(imageBannerAdapter);//写到这里就实现轮播图了
        banner.setIndicator(new CircleIndicator(this),true);//设置指示器为原点

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Android Studio中的Banner,需要按照以下步骤进行: 1. 添加依赖项 在build.gradle文件中,添加以下依赖项: ``` dependencies { implementation 'com.youth.banner:banner:2.2.1' } ``` 2. 在布局文件中添加Banner 在布局文件中,添加以下代码: ``` <com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp"/> ``` 3. 设置Banner数据 在Activity或Fragment中,获取Banner实例,并设置数据源: ``` Banner banner = findViewById(R.id.banner); List<String> images = new ArrayList<>(); images.add("http://www.xxx.com/1.jpg"); images.add("http://www.xxx.com/2.jpg"); images.add("http://www.xxx.com/3.jpg"); banner.setImages(images); banner.start(); ``` 其中,images为Banner的数据源,可以是本地图片路径或网络图片链接。 4. 设置Banner样式和事件监听 可以通过Banner的属性和方法,设置Banner的样式和事件监听。例如: ``` banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE); banner.setBannerTitles(titles); banner.setDelayTime(2000); banner.setOnBannerListener(new OnBannerListener() { @Override public void OnBannerClick(int position) { // Banner的点击事件处理 } }); ``` 其中,setBannerStyle方法可以设置Banner的样式,setBannerTitles方法可以设置Banner的标题,setDelayTime方法可以设置Banner的切换时间间隔,setOnBannerListener方法可以设置Banner的点击事件监听。 5. 运行程序 最后,运行程序,查看Banner效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值