您的位置:首页 > 移动开发 > Android开发

Android中ConvenientBanner的使用--获取本地图片 --(实现效果是自动轮播图片)

2017-09-12 20:32 996 查看
一.首先添加依赖
compile 'com.bigkoo:convenientbanner:2.0.5'
1



二.首先获取本地图片 

1.在MainActivity中:

public class MainActivity extends AppCompatActivity implements OnItemClickListener {

private ConvenientBanner convenientBanner;
private ArrayList<Integer> localImages = new ArrayList<Integer>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
convenientBanner = (ConvenientBanner) findViewById(R.id.convenientBanner);

//获取本地的图片
for (int position =0; position <5; position++) {
//这里面的a  代表drawable里面自己放的本地图片
localImages.add(getResId("a" + position, R.drawable.class));
}

//开始自动翻页
convenientBanner.setPages(new CBViewHolderCreator() {
@Override
public Object createHolder() {
return new LocalImageHolderView();
}
},localImages)
//设置指示器是否可见
.setPointViewVisible(true)
//设置自动切换(同时设置了切换时间间隔)
.startTurning(2000)
//设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设
.setPageIndicator(new int[]{R.drawable.b1, R.drawable.b2})
//设置指示器的方向(左、中、右)
.setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.ALIGN_PARENT_LEFT)
//设置点击监听事件
.setOnItemClickListener(this)
//设置手动影响(设置了该项无法手动切换)
.setManualPageable(true);

//设置翻页的效果,不需要翻页效果可用不设
//setPageTransformer(Transformer.DefaultTransformer);   // 集成特效之后会有白屏现象,新版已经分离,如果要集成特效的例子可以看Demo的点击响应。

}

//图片的点击事件
@Override
public void onItemClick(int position) {
Toast.makeText(this, "position:" + position, Toast.LENGTH_SHORT).show();
}

//为了方便改写,来实现复杂布局的切换
private class LocalImageHolderView implements Holder<Integer> {
private ImageView imageView;

@Override
public View createView(Context context) {
//你可以通过layout文件来创建,不一定是Image,任何控件都可以进行翻页
imageView = new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}

@Override
public void UpdateUI(Context context, int position, Integer data) {
imageView.setImageResource(data);
}
}

/**
* 通过文件名获取资源id 例子:getResId("icon", R.drawable.class);
*
* @param variableName
* @param c
* @return
*/
public static int getResId(String variableName, Class<?> c) {
try {
Field idField = c.getDeclaredField(variableName);
return idField.getInt(idField);
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
}

2.MainActivity的布局文件:

<com.bigkoo.convenientbanner.ConvenientBanner
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/convenientBanner"
android:layout_width="match_parent"
android:layout_height="200dp"
app:canLoop="true" />
<!--   app:canLoop="true"  //控制循环与否-->

3.drawable中放放置的本地图片,a开头代表本地图片  ,b 是小圆点图片

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐