Android中ConvenientBanner的使用--获取网络图片 --(实现效果是自动轮播图片)
2017-09-15 08:31
1081 查看
一.首先添加依赖
compile'com.bigkoo:convenientbanner:2.0.5'
compile'com.github.bumptech.glide:glide:3.6.0'
二.首先获取本地图片
1.在MainActivity中:
2.MainActivity的布局文件:
需要在xml清单文件里面配置网络权限:
=================================================================================
解析json串获得图片链接的代码
compile'com.bigkoo:convenientbanner:2.0.5'
compile'com.github.bumptech.glide:glide:3.6.0'
二.首先获取本地图片
1.在MainActivity中:
public class MainActivity extends AppCompatActivity { private String[] images = { "http://img2.3lian.com/2014/f2/37/d/40.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 int[] indicator = {R.drawable.b1, R.drawable.b2}; private ConvenientBanner convenientBanner; //图片加载地址的集合 private List<String> bean; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); convenientBanner = (ConvenientBanner) findViewById(R.id.convenientBanner); bean = Arrays.asList(images); convenientBanner.setPointViewVisible(true) //设置小点 .setPageIndicator(indicator); //允许手动轮播 convenientBanner.setManualPageable(true); //设置自动轮播的时间 convenientBanner.startTurning(2000); //设置点击事件 //泛型为具体实现类ImageLoaderHolder convenientBanner.setPages(new CBViewHolderCreator<NetImageLoadHolder>() { @Override public NetImageLoadHolder createHolder() { return new NetImageLoadHolder(); } }, bean); //设置每个pager的点击事件 convenientBanner.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(int position) { Toast.makeText(MainActivity.this, "点击了" + convenientBanner.getCurrentItem(), Toast.LENGTH_SHORT).show(); } }); } public class NetImageLoadHolder implements Holder<String> { private ImageView image_lv; //可以是一个布局也可以是一个Imageview @Override public ImageView createView(Context context) { image_lv = new ImageView(context); image_lv.setScaleType(ImageView.ScaleType.FIT_XY); return image_lv; } @Override public void UpdateUI(Context context, int position, String data) { //Glide框架 Glide.with(context).load(data).into(image_lv); } } }
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" />
需要在xml清单文件里面配置网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
=================================================================================
解析json串获得图片链接的代码
public class MainActivity extends AppCompatActivity { //轮播下面的小点(小圆点是本地的,自己导入的图片) private int[] indicator = {R.drawable.b1, R.drawable.b2}; private ConvenientBanner convenientBanner; private List<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Jiexi(); findViewById(R.id.tiao).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this, Main2Activity.class); startActivity(intent); } }); } private void add() { convenientBanner = (ConvenientBanner) findViewById(R.id.convenientBanner); // bean = Arrays.asList(images); convenientBanner.setPointViewVisible(true) //设置小点 .setPageIndicator(indicator); //允许手动轮播 convenientBanner.setManualPageable(true); //设置自动轮播的时间 convenientBanner.startTurning(2000); //设置点击事件 //泛型为具体实现类ImageLoaderHolder convenientBanner.setPages(new CBViewHolderCreator<NetImageLoadHolder>() { @Override public NetImageLoadHolder createHolder() { return new NetImageLoadHolder(); } }, list); //设置每个pager的点击事件 convenientBanner.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(int position) { Toast.makeText(MainActivity.this, "点击了" + convenientBanner.getCurrentItem(), Toast.LENGTH_SHORT).show(); } }); } private void Jiexi() { new AsyncTask<String, Integer, String>(){ //一般基本最少写这俩种方法 //doInBackground 方法 @Override protected String doInBackground(String... params) { //打开连接 String str=""; try { URL url= new URL("http://apis.juhe.cn/cook/query?key=dd452181a9ca8ee5710d153538a4b8d6&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=10&pn=1"); HttpURLConnection conne=(HttpURLConnection) url.openConnection(); //设置时间 Log.d("zzz", "走没走!!!!"); conne.setReadTimeout(5000); conne.setConnectTimeout(5000); int responseCode = conne.getResponseCode(); //判断 if (responseCode==200) { InputStream in = conne.getInputStream(); byte[] by=new byte[1024]; int len=0; while ((len=in.read(by))!=-1) { str+=new String(by,0,len); } } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return str; } //onPostExecute方法 protected void onPostExecute(String result) { Log.d("zzz", result); Gson gson = new Gson(); Prioer p = gson.fromJson(result, Prioer.class); List<Prioer.ResultBean.DataBean.StepsBean> data = p.getResult().getData().get(0).getSteps(); //图片加载地址的集合 list=new ArrayList<String>(); for(int i=0;i<data.size();i++){ String img = data.get(i).getImg(); list.add(img); } add(); super.onPostExecute(result); }; //这一步必须要写execute() }.execute(); } public class NetImageLoadHolder implements Holder<String> { private ImageView image_lv; //可以是一个布局也可以是一个Imageview @Override public ImageView createView(Context context) { image_lv = new ImageView(context); image_lv.setScaleType(ImageView.ScaleType.FIT_XY); return image_lv; } @Override public void UpdateUI(Context context, int position, String data) { //Glide框架 Glide.with(context).load(data).into(image_lv); } } }
相关文章推荐
- Android中ConvenientBanner的使用--获取本地图片 --(实现效果是自动轮播图片)
- Android广告条效果--使用Volley实现网络图片的自动轮播(仿淘宝、网易广告页轮播效果)
- Android-------使用第三方Banner实现对网络图片的无线轮播
- [置顶] Android图片轮播控件ConvenientBanner的简单使用
- 网络获取图片实现无线自动轮播
- android TV开发:使用ViewPager实现图片自动轮播效果
- 运用ConvenientBanner实现Android界面图片轮播
- [置顶] Android图片轮播控件ConvenientBanner的简单使用
- Android使用ViewPager实现图片轮播(高度自适应,左右循环,自动轮播)
- Android使用Recyclerview实现图片水平自动循环滚动效果
- Android使用自定义控件实现加载网络图片无限轮播
- Android中ViewPager的使用(二):实现图片轮播效果
- 在Android中使用加载器(Loader)来实现获取本机中的所有图片,并进行查看图片的效果
- 【Android基础知识】使用Gallery和ImageSwitcher实现图片轮播效果
- CSS3 animation实现图片轮播效果 自动显示 无需使用js 含代码(图片轮播效果一)
- 推荐Android中两个很好用的banner,可无限轮播,可使用第三方图片加载框架加载网络图
- Android自动播放Banner图片轮播效果
- 关于banner获取网络图片设置自动轮播
- Android中使用ImageViewSwitcher实现图片切换轮播导航效果
- 使用FlaycoBanner实现图片轮播效果(加载网络图片)