package com.bigkoo.convenientbannerdemo; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.ListView; import android.widget.Toast; import com.bigkoo.convenientbanner.holder.CBViewHolderCreator; import com.bigkoo.convenientbanner.ConvenientBanner; import com.bigkoo.convenientbanner.listener.OnItemClickListener; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import androidx.appcompat.app.AppCompatActivity; /** * Created by Sai on 15/7/30. * convenientbanner 控件 的 demo */ public class MainActivity extends AppCompatActivity implements OnItemClickListener { private ConvenientBanner convenientBanner;//顶部广告栏控件 private ArrayList localImages = new ArrayList(); private List networkImages; private String[] images = {"http://img2.imgtn.bdimg.com/it/u=3093785514,1341050958&fm=21&gp=0.jpg", "http://img2.3lian.com/2014/f2/37/d/40.jpg", "http://d.3987.com/sqmy_131219/001.jpg", "http://img2.3lian.com/2014/f2/37/d/39.jpg", "http://www.8kmm.com/UploadFiles/2012/8/201208140920132659.jpg", "http://f.hiphotos.baidu.com/image/h%3D200/sign=1478eb74d5a20cf45990f9df460b4b0c/d058ccbf6c81800a5422e5fdb43533fa838b4779.jpg", "http://f.hiphotos.baidu.com/image/pic/item/09fa513d269759ee50f1971ab6fb43166c22dfba.jpg" }; private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); init(); } private void initViews() { convenientBanner = (ConvenientBanner) findViewById(R.id.convenientBanner); } private void init(){ // initImageLoader(); loadTestDatas(); //本地图片例子 convenientBanner.setPages( new CBViewHolderCreator() { @Override public LocalImageHolderView createHolder(View itemView) { return new LocalImageHolderView(itemView); } @Override public int getLayoutId() { return R.layout.item_localimage; } }, localImages) //设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设 // .setPageIndicator(new int[]{R.drawable.ic_page_indicator, R.drawable.ic_page_indicator_focused}) .setOnItemClickListener(this); //设置指示器的方向 // .setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.ALIGN_PARENT_RIGHT) // .setOnPageChangeListener(this)//监听翻页事件 ; // convenientBanner.setManualPageable(false);//设置不能手动影响 //网络加载例子 // networkImages=Arrays.asList(images); // convenientBanner.setPages(new CBViewHolderCreator() { // @Override // public NetworkImageHolderView createHolder() { // return new NetworkImageHolderView(); // } // },networkImages); //手动New并且添加到ListView Header的例子 // ConvenientBanner mConvenientBanner = new ConvenientBanner(this,false); // mConvenientBanner.setMinimumHeight(500); // mConvenientBanner.setPages( // new CBViewHolderCreator() { // @Override // public LocalImageHolderView createHolder() { // return new LocalImageHolderView(); // } // }, localImages) // //设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设 // .setPageIndicator(new int[]{R.drawable.ic_page_indicator, R.drawable.ic_page_indicator_focused}) // //设置指示器的方向 // .setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.ALIGN_PARENT_RIGHT) // .setOnItemClickListener(this); // listView.addHeaderView(mConvenientBanner); } // //初始化网络图片缓存库 // private void initImageLoader(){ // //网络图片例子,结合常用的图片缓存库UIL,你可以根据自己需求自己换其他网络图片库 // DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder(). // showImageForEmptyUri(R.drawable.ic_default_adimage) // .cacheInMemory(true).cacheOnDisk(true).build(); // // ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( // getApplicationContext()).defaultDisplayImageOptions(defaultOptions) // .threadPriority(Thread.NORM_PRIORITY - 2) // .denyCacheImageMultipleSizesInMemory() // .diskCacheFileNameGenerator(new Md5FileNameGenerator()) // .tasksProcessingOrder(QueueProcessingType.LIFO).build(); // ImageLoader.getInstance().init(config); // } /* 加入测试Views * */ private void loadTestDatas() { //本地图片集合 for (int position = 0; position < 7; position++) localImages.add(getResId("ic_test_" + position, R.drawable.class)); //// //各种翻页效果 // transformerList.add(DefaultTransformer.class.getSimpleName()); // transformerList.add(AccordionTransformer.class.getSimpleName()); // transformerList.add(BackgroundToForegroundTransformer.class.getSimpleName()); // transformerList.add(CubeInTransformer.class.getSimpleName()); // transformerList.add(CubeOutTransformer.class.getSimpleName()); // transformerList.add(DepthPageTransformer.class.getSimpleName()); // transformerList.add(FlipHorizontalTransformer.class.getSimpleName()); // transformerList.add(FlipVerticalTransformer.class.getSimpleName()); // transformerList.add(ForegroundToBackgroundTransformer.class.getSimpleName()); // transformerList.add(RotateDownTransformer.class.getSimpleName()); // transformerList.add(RotateUpTransformer.class.getSimpleName()); // transformerList.add(StackTransformer.class.getSimpleName()); // transformerList.add(ZoomInTransformer.class.getSimpleName()); // transformerList.add(ZoomOutTranformer.class.getSimpleName()); // transformerArrayAdapter.notifyDataSetChanged(); } /** * 通过文件名获取资源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; } } // 开始自动翻页 @Override protected void onResume() { super.onResume(); // //开始自动翻页 convenientBanner.startTurning(); } // 停止自动翻页 @Override protected void onPause() { super.onPause(); // //停止翻页 convenientBanner.stopTurning(); } @Override public void onItemClick(int position) { Toast.makeText(this,"点击了第"+position+"个",Toast.LENGTH_SHORT).show(); startActivity(new Intent(this, HeaderActivity.class)); // convenientBanner.setCanLoop(!convenientBanner.isCanLoop()); } }