转载注明出处:http://blog.csdn.net/forwardyzk/article/details/42077481
广告条在开发中是经常用到的,现在自己学了一个广告条,直接导入就可以使用
1.根据传入的Url个数,会自动的创建对应的ImageView和对应的图片点。
2.动态的设置加载图片的失败,为空,默认加载的状态。
3.动态的设置图片点默认状态和选中状态
4.对加载的图片进行的优化(LruCache和DiskLruCache)
5.动态设置图片的点击事件
使用步骤:
1.导入对应的包(my.custom.sview)(下载地址:http://download.csdn.net/detail/forwardyzk/8285055)
2.在布局文件中写入
<my.custom.sview.AdView android:id="@+id/adview_images" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > </my.custom.sview.AdView>
不要忘了添加权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3.获取对象
AdView adview = (AdView) findViewById(R.id.adview_images);
4.添加图片
传入的是ImageView加载图片的Url集合List<String>
adview.setImageUrls(urls);
举例url:
http://e.hiphotos.baidu.com/image/pic/item/a5c27d1ed21b0ef40f6f1042dec451da81cb3e22.jpg
就会根绝你传入的url的个数,自动的创建ImageView和对应的点
5.更改图片对应点的背景
package my.custom.sview.AdConstant常量类中修改
DEFAULT_POINT_STATE:默认状态的点的背景
SELECTED_POINT_STATE:选中状态的背景
COUNT:广告条适配器设置的count数量,这样会自动的轮训,如果设置成ImageView的数量,那么到最后一张跳转到第一张的时候,显得不那么自然
6.设置广告条图片的点击事件
setAdImageListener(AdImageListener lis)
是以ImageView加载的Url为Tag标记。来判断点击的是那一个图片
adview.setAdImageListener(new AdImageListener() { @Override public void cliclImageView(String tag) { if (url1.equals(tag)) { //在这里处理ImageView为url1的点击操作 } } });
7.设置广告条图片加载的图片选项
DisplayImageMyOptions mOptions = new DisplayImageMyOptions .Builder() .showImageForEmptyUri(R.drawable.empty_loader)//加载的url为空,默认展示的图片 .showImageOnFail(R.drawable.error)//加载失败,默认展示的图片 .showStubImage(R.drawable.default_loader)//加载前默认展示的图片 .setRatio(false)//是否设置压缩图片,false:不压缩,后面即使设置压缩的宽和高也无效 true:压缩,后面设置的压缩的长和宽就有效 .setRatioWidth(100)//压缩的宽度 .setRatioHeight(100)//压缩的高度 .build(); adview.setMyOptions(mOptions);//设置加载图片的选项
以上的操作当然也可以不设置,有默认的选项
package my.custom.sview.image.ConstantLoader
public class ConstantLoader { public final static int MAXMEMORY = (int) Runtime.getRuntime().maxMemory();// 最大运行内存 public final static int MAXMEMORY8 = MAXMEMORY / 8;// 最大运行内存的八分之一 // 如果想改变值,可以修改此值 public final static int MAXMEMORYF_FOR_LRUCACHE = MAXMEMORY8;// 给LurCache设置的最大的运行内存,默认的是最大运行内存的八分之一 public final static String CACHE_FILENAME = "thumb";// 图片缓存目录名字 public final static int DEFAULT_LOADIMAGEID = R.drawable.ic_launcher; public final static boolean ISSHOW_IMAGELOADER_LOG = true;// 是否打印Log日志 public final static boolean ISCACHEIN_MEMORY = true;// 是否村存到LruCache中,默认是存储到Lrucache public final static boolean ISCACHEON_DISC = true;// 是否村存到本地(DiskLruCache)中,默认是存储到Lrucache public final static boolean ISSET_RATIO = true;// 是否设置压缩比例,默认不压缩图片 public final static int RATIO_STANDARD_WIDTH = 100;// 如果设置了需要压缩,默认的压缩宽度 public final static int RATIO_STANDARD_HEIGHT = 100;// 如果设置了需要压缩,默认的压缩高度 public final static String LOG_D_TAG = "MyImageLoader"; }
如果想修改默认值,也可以修改这里对应的值即可
有不妥的地方,需要完善的地方,希望大家指出。互相学习,互相进步。
源码下载地址:http://download.csdn.net/detail/forwardyzk/8285055