100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android的轮播图Banner之本地加载和网络加载图片(含demo)

Android的轮播图Banner之本地加载和网络加载图片(含demo)

时间:2022-07-11 23:39:55

相关推荐

Android的轮播图Banner之本地加载和网络加载图片(含demo)

前言

关于轮播图 我个人是比较喜欢 闲来无事的时候 可以整理自己的照片

做一个demo 看看动态的效果 挺不错的!

每个App也基本都有一些广告位置 只要打开这个页面就会无限轮播广告图片

看多了我们也会记得这个效果 那么他是怎么实现的呢?

今天我就学习了一下 写了一个demo来练练手

先看效果图吧

导入依赖的包

版本可自行调整 我用的是1.4.10里面的动画Animation样式Style更多一些

//轮播依赖implementation'com.youth.banner:banner:1.4.10'//Glide框架implementation "com.github.bumptech.glide:glide:4.6.1"

权限问题

如果你从SD卡读取图片 别忘了加读写权限下面有从网络加载图片的方法加了相关网络权限<uses-permission android:name="android.permission.INTERNET" /> //网络权限<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> //读取SD卡

布局资源

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><com.youth.banner.Bannerandroid:id="@+id/banner"android:layout_width="match_parent"android:layout_height="150dp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintTop_toTopOf="parent"/></android.support.constraint.ConstraintLayout>

MainActivity的代码

这个demo加载的图片是本地的

public class MainActivity extends AppCompatActivity implements OnBannerListener {private Banner mBanner;private MyImageLoader mMyImageLoader;private ArrayList<Integer> imagePath;private ArrayList<String> imageTitle;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initData();initView();}private void initData() {imagePath = new ArrayList<>();imageTitle = new ArrayList<>();imagePath.add(R.mipmap.seabird);imagePath.add(R.mipmap.seabird);imagePath.add(R.mipmap.seabird);imageTitle.add("我是海鸟一号");imageTitle.add("我是海鸟二号");imageTitle.add("我是海鸟三号");}private void initView() {mMyImageLoader = new MyImageLoader();mBanner = findViewById(R.id.banner);//设置样式,里面有很多种样式可以自己都看看效果mBanner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);//设置图片加载器mBanner.setImageLoader(mMyImageLoader);//设置轮播的动画效果,里面有很多种特效,可以都看看效果。mBanner.setBannerAnimation(Transformer.ZoomOutSlide);//轮播图片的文字mBanner.setBannerTitles(imageTitle);//设置轮播间隔时间mBanner.setDelayTime(3000);//设置是否为自动轮播,默认是truemBanner.isAutoPlay(true);//设置指示器的位置,小点点,居中显示mBanner.setIndicatorGravity(BannerConfig.CENTER);//设置图片加载地址mBanner.setImages(imagePath)//轮播图的监听.setOnBannerListener(this)//开始调用的方法,启动轮播图。.start();}/*** 轮播图的监听** @param position*/@Overridepublic void OnBannerClick(int position) {Toast.makeText(this, "你点了第" + (position + 1) + "张轮播图", Toast.LENGTH_SHORT).show();}/*** 图片加载类*/private class MyImageLoader extends ImageLoader {@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {Glide.with(context.getApplicationContext()).load(path).into(imageView);}}}

加载网络图片方法

如果你的demo一片空白 没有图片 、

请注意敲黑板!!,敲黑板!!,敲黑板!!极大可能是没有网络权限

布局就不上传了 主要代码如下

public class MainActivity extends AppCompatActivity implements OnBannerListener {private Banner banner;private ArrayList<String> list_path;private ArrayList<String> list_title;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initData();}private void initData() {list_path.add("/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/sign=e9873bfca944ad342eea8f81e09220cc/a8ec8a13632762d08fa73daea8ec08fa513dc602.jpg"); list_path.add("/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/sign=e9873bfca944ad342eea8f81e09220cc/a8ec8a13632762d08fa73daea8ec08fa513dc602.jpg");list_path.add("/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/sign=e9873bfca944ad342eea8f81e09220cc/a8ec8a13632762d08fa73daea8ec08fa513dc602.jpg");list_path.add("/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/ sign=e9873bfca944ad342eea8f81e09220cc/a8ec8a13632762d08fa73daea8ec08fa513dc602.jpg"); list_title.add("我爱NBA");list_title.add("我爱科比布莱恩特");list_title.add("我爱NBA");list_title.add("我爱科比布莱恩特");}private void initView() {banner = findViewById(R.id.banner);list_path = new ArrayList<>();list_title = new ArrayList<>();banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);banner.setImageLoader(new MyLoader());banner.setBannerAnimation(Transformer.Default);banner.setBannerTitles(list_title);banner.setDelayTime(3000);banner.isAutoPlay(true);banner.setIndicatorGravity(BannerConfig.CENTER);banner.setImages(list_path).setOnBannerListener(this).start();}/*** 轮播监听** @param position*/@Overridepublic void OnBannerClick(int position) {Toast.makeText(this, "你点了第" + (position + 1) + "张轮播图", Toast.LENGTH_SHORT).show();}/*** 网络加载图片* 使用了Glide图片加载框架*/private class MyLoader extends ImageLoader {@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {Glide.with(context.getApplicationContext()).load((String) path).into(imageView);}}}

效果图

与君共勉

我要一步一步往上爬

在最高点乘着叶片往前飞

任风吹干流过的泪和汗

我要一步一步往上爬

等待阳光静静看着它的脸

小小的天有大大的梦想

我有属于我的天

任风吹干流过的泪和汗

总有一天我有属于我的天

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。