相信大家都知道每个APP中都会有广告栏用来推广一些东西,部分APP是通过Viewpager实现,下面我是通过开源库Banner实现(绝对简单),Banner开源详情:https://github.com/youth5201314/banner (多种方式可选择)
效果图:
Banner开源库下载:http://download.youkuaiyun.com/detail/qq_26650589/9875699
下载完成过后进行导入开源库,这里就不在这里展示出来啦,导入开源库遇到问题的请看博文:http://blog.youkuaiyun.com/qq_26650589/article/details/73526367
后面会使用到Picasso图片加载图,所以先把Picasso下载一下:http://download.youkuaiyun.com/detail/qq_26650589/9695886
将下载的Picasso复制到libs中,然后在build里的dependencies中引入:
compile files('libs/picasso-2.5.2.jar')//picasso-2.5.2.jar要和架包名称相同
1、activity布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context="com.wdl.banner.MainActivity">
<com.youth.banner.Banner
android:id="@+id/bannervp"
android:layout_width="match_parent"
android:layout_height="200dp"
/>
</RelativeLayout>
2、MainActivity.java:
public class MainActivity extends AppCompatActivity {
private List<String> img = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Banner banner= (Banner) findViewById(R.id.bannervp);
//添加图片
img.add("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1089399937,1684001946&fm=23&gp=0.jpg");
img.add("https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=787324823,4149955059&fm=23&gp=0.jpg");
img.add("https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3514483810,1208920576&fm=23&gp=0.jpg");
img.add("https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1917280427,3920336884&fm=23&gp=0.jpg");
banner.setImageLoader(new GlideImageLoader());
banner.setIndicatorGravity(BannerConfig.RIGHT);//圆点的位置
banner.setImages(img).//加载的图片
setBannerStyle(BannerConfig.CIRCLE_INDICATOR).
setDelayTime(2000).start();//图片循环滑动的时间2秒
//设置点击事件
banner.setOnBannerListener(new OnBannerListener() {
@Override
public void OnBannerClick(int position) {
switch (position){
case 0:
Toast.makeText(MainActivity.this,"1111",Toast.LENGTH_LONG).show();
break;
case 1:
Toast.makeText(MainActivity.this,"222",Toast.LENGTH_LONG).show();
break;
case 2:
Toast.makeText(MainActivity.this,"333",Toast.LENGTH_LONG).show();
break;
case 3:
Toast.makeText(MainActivity.this,"444",Toast.LENGTH_LONG).show();
break;
}
}
});
}
}
2、创建GlideImageLoader图片加载器
/**
* Created by Administrator on 2017/5/23 0023.
*/
public class GlideImageLoader extends ImageLoader{
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Picasso.with(context).load((String) path).into(imageView);
}
}
Picasso是我们一开始导入的架包
Banner 中提供了很多样式和动画效果: https://github.com/youth5201314/banner
上面实现是通过固定的图片进行显示,下面是通过获取服务器json数据进行显示
2017.7.4更新:http://blog.youkuaiyun.com/qq_26650589/article/details/74295684