github banner轮播图框架:https://github.com/youth5201314/banner 可以设置轮播样式、动画、轮播和切换时间、位置、图片加载框架等!
原来这位大神的轮播图DEMO功能齐全,但我不需要复杂的功能,实现图片轮播即可。
故简化成下面图片所示。
【android 轮播图demo下载】
app 依赖
implementation 'com.youth.banner:banner:1.4.10'
implementation "com.github.bumptech.glide:glide:3.7.0"
清单文件增加权限
<uses-permission android:name="android.permission.INTERNET" />
<!-- if you want to load images from a file OR from the internet -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
activity_main 页面文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.youth.banner.Banner
android:layout_width="match_parent"
android:layout_height="600px"
android:background="@color/colorPrimary"
android:id="@+id/banner">
</com.youth.banner.Banner>
</LinearLayout>
MainActivity文件
package com.example.administrator.banner;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import com.youth.banner.Banner;
import com.youth.banner.listener.OnBannerListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MainActivity extends AppCompatActivity implements OnBannerListener {
Banner banner;
public static List<?> images=new ArrayList<>();
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
banner=(Banner)findViewById(R.id.banner);
String[] urls = getResources().getStringArray(R.array.url);
List list = Arrays.asList(urls);
images = new ArrayList(list);
//设置自动轮播,默认为true
banner.isAutoPlay(true);
//设置轮播时间
banner.setDelayTime(1500);
banner.setImages(images)
.setImageLoader(new GlideImageLoader())
.setOnBannerListener(this)
.start();
}
@Override
public void OnBannerClick(int position) {
Toast.makeText(getApplicationContext(),"你点击了:"+position,Toast.LENGTH_SHORT).show();
}
}
GlideImageLoader文件
package com.example.administrator.banner;
import android.content.Context;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.youth.banner.loader.ImageLoader;
public class GlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
//具体方法内容自己去选择,次方法是为了减少banner过多的依赖第三方包,所以将这个权限开放给使用者去选择
Glide.with(context.getApplicationContext())
.load(path)
.into(imageView);
}
}
更多可设置的方法和属性请参考github!
【android 轮播图demo下载】
如需帮助请留言!