广告轮播图功能------本地获取图片(一)

时间:2022-10-10 08:01:27

1.在app下的buildgradle中添加依赖。
compile ‘com.bigkoo:convenientbanner:2.0.5’
添加之后,Sync Now同步。
2.在activity_main.xml 中自定义ConvenientBanner控件

 <com.bigkoo.convenientbanner.ConvenientBanner
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/convenientBanner"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="150dp"
app:canLoop="true" />

3.在MainActivity中定义控件,设置控件。

package app.coolweather.com.myapplication;

import android.app.Activity;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

import com.bigkoo.convenientbanner.ConvenientBanner;
import com.bigkoo.convenientbanner.holder.CBViewHolderCreator;
import com.bigkoo.convenientbanner.holder.Holder;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.zip.Inflater;

public class MainActivity extends Activity {
//顶部广告栏控件
private ConvenientBanner convenientBanner;
//本地图片集合
private ArrayList<Object> localImages = new ArrayList<Object>();


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
convenientBanner = (ConvenientBanner)findViewById(R.id.convenientBanner);
//向图片集合中添加图片
localImages.add(R.mipmap.banner);
localImages.add(R.mipmap.background_default6);
localImages.add(R.mipmap.news_default_pic);

final LocalImageHolderView localImageHolderView = new LocalImageHolderView();
CBViewHolderCreator<LocalImageHolderView> cbViewHolderCreator = new CBViewHolderCreator<LocalImageHolderView>() {
@Override
public LocalImageHolderView createHolder() {
return localImageHolderView;
}
};
convenientBanner.setPages(cbViewHolderCreator, localImages)
//设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设
.setPageIndicator(new int[]{R.mipmap.ic_page_indicator, R.mipmap.ic_page_indicator_focused})
//设置指示器的方向
.setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.CENTER_HORIZONTAL);
//设置翻页的效果,不需要翻页效果可用不设
//.setPageTransformer(Transformer.DefaultTransformer); 集成特效之后会有白屏现象,新版已经分离,如果要集成特效的例子可以看Demo的点击响应。
// convenientBanner.setManualPageable(false);//设置不能手动影响
}
// 本地加载图片
public class LocalImageHolderView implements Holder<Integer> {
private ImageView imageView;
@Override
public View createView(Context context) {
imageView = new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}
@Override
public void UpdateUI(Context context, final int position, Integer data) {
imageView.setImageResource(data);
}
}
// 开始自动翻页
@Override
public void onResume() {
super.onResume();
//开始自动翻页
convenientBanner.startTurning(5000);
}
// 停止自动翻页
@Override
public void onPause() {
super.onPause();
//停止翻页
convenientBanner.stopTurning();
}
}

上面案例即实现了手势滑动和定时滑动的功能,图片是从本地添加的。
之后我会更新一篇图片从网络获取。上述代码我都运行测试过,如有问题,还望提出指教。