自定义广告轮播

来源:互联网 发布:淘宝上卖什么利润高 编辑:程序博客网 时间:2024/05/22 12:35
与第三方框架Banner比较: 缺点是代码太多,不能轮播本地图片
step1.拷贝jar包
step2.拷贝图片
step3.拷贝xml

step4.拷贝所需要的代码

step4.更改activity的xml中布局文件

step5.在activity中写代码
public class MainActivity extends AppCompatActivity {
private List<ImageView> views = new ArrayList<>();
private List<ADInfo> infos = new ArrayList<>();
private CycleViewPager cycleViewPager;

private String[] imageUrls;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
configImageLoader();
initialize();
}

private void initialize() {

cycleViewPager = (CycleViewPager) getFragmentManager()
.findFragmentById(R.id.fragment_cycle_viewpager_content);
imageUrls=getResources().getStringArray(R.array.url);
for (int i = 0; i < imageUrls.length; i++) {
ADInfo info = new ADInfo();
info.setUrl(imageUrls[i]);
info.setContent("图片-->" + i);
infos.add(info);
}

// 将最后一个ImageView添加进来
views.add(ViewFactory.getImageView(this, infos.get(infos.size() - 1)
.getUrl()));
for (int i = 0; i < infos.size(); i++) {
views.add(ViewFactory.getImageView(this, infos.get(i).getUrl()));
}
// 将第一个ImageView添加进来
views.add(ViewFactory.getImageView(this, infos.get(0).getUrl()));

// 设置循环,在调用setData方法前调用
cycleViewPager.setCycle(true);

// 在加载数据前设置是否循环
cycleViewPager.setData(views, infos, mAdCycleViewListener);
// 设置轮播
cycleViewPager.setWheel(true);

// 设置轮播时间,默认5000ms
cycleViewPager.setTime(3000);
// 设置圆点指示图标组居中显示,默认靠右
cycleViewPager.setIndicatorCenter();
}

private CycleViewPager.ImageCycleViewListener mAdCycleViewListener = new CycleViewPager.ImageCycleViewListener() {

@Override
public void onImageClick(ADInfo info, int position, View imageView) {
if (cycleViewPager.isCycle()) {
Toast.makeText(MainActivity.this,
"position-->" + info.getContent(), Toast.LENGTH_SHORT)
.show();
}

}

};

/**
* 配置ImageLoder
*/
private void configImageLoader() {
// 初始化ImageLoader
@SuppressWarnings("deprecation")
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.icon_stub) // 设置图片下载期间显示的图片
.showImageForEmptyUri(R.drawable.icon_empty) // 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.icon_error) // 设置图片加载或解码过程中发生错误显示的图片
.cacheInMemory(true) // 设置下载的图片是否缓存在内存中
.cacheOnDisc(true) // 设置下载的图片是否缓存在SD卡中
// .displayer(new RoundedBitmapDisplayer(20)) // 设置成圆角图片
.build(); // 创建配置过得DisplayImageOption对象

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext()).defaultDisplayImageOptions(options)
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.discCacheFileNameGenerator(new Md5FileNameGenerator())
.tasksProcessingOrder(QueueProcessingType.LIFO).build();
ImageLoader.getInstance().init(config);
}}

step6.在配置文件中添加权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

step7.修改报错


源代码地址:http://download.csdn.net/detail/daidaishuiping/9754063

1 0
原创粉丝点击