在安卓开发过程中,图片轮播用途非常广泛,因此 今天做了一个demo,测试还是非常好用的
首先借鉴 github上面的demo, 我借鉴的demo是这个地址:https://github.com/dongjunkun/BannerLayout
添加这个依赖 compile 'com.github.dongjunkun:BannerLayout:1.0.3'
<com.jiuxin.lunbo.BannerLayout android:id="@+id/banner2" android:layout_width="match_parent" android:layout_height="200dp" app:autoPlayDuration="5000" app:indicatorMargin="10dp" android:layout_marginTop="10dp" app:indicatorPosition="centerBottom" app:indicatorShape="oval" app:indicatorSpace="3dp" app:scrollDuration="900" app:selectedIndicatorColor="?attr/colorAccent" app:selectedIndicatorHeight="6dp" app:selectedIndicatorWidth="6dp" app:unSelectedIndicatorColor="#99ffffff" app:unSelectedIndicatorHeight="6dp" app:unSelectedIndicatorWidth="6dp" app:defaultImage="@mipmap/ic_launcher" />这是布局,然后 从网络上获取图片 这里面网络请求 我使用的是volley 接口地址:
http://121.42.26.208:83/interface/json_index.php?areaid=1&page=1&uid=
实现代码如下
public class MainActivity extends AppCompatActivity { BannerLayout banner; private static final String ZHANG_YUANCHONG = "http://121.42.26.208:83/interface/json_index.php?areaid=1&page=1&uid="; BannerEntity news; Gson gson; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); banner = (BannerLayout) findViewById(R.id.banner2); gson = new Gson(); loadData(); } private void loadData() { RequestQueue mQueue = Volley.newRequestQueue(this); StringRequest stringRequest = new StringRequest(ZHANG_YUANCHONG, new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d("TAG", response); dealWithResponse(response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("TAG", error.getMessage(), error); } }); mQueue.add(stringRequest); } private void dealWithResponse(String response) { news = gson.fromJson(response, BannerEntity.class); Toast.makeText(this, "aaa>>" + news.getBannerlist().get(0).getInfo() + "<<>" + news.getBannerlist().get(0).getPicurl(), Toast.LENGTH_SHORT).show(); // Log.d(news.getBannerlist().get(0).getInfo() + "<<>" + news.getBannerlist().get(0).getPicurl(), "==================="); List<BannerEntity.BannerlistBean> mEnjoyLists = new ArrayList<>(); mEnjoyLists = news.getBannerlist(); Toast.makeText(this, "aaa>>" + news.getBannerlist().get(0).getInfo() + "<<>" + news.getBannerlist().get(0).getPicurl(), Toast.LENGTH_SHORT).show(); List<String> urls=new ArrayList<>(); for (int i = 0; i < mEnjoyLists.size(); i++) { urls.add("http://121.42.26.208:83/"+mEnjoyLists.get(i).getPicurl()); } banner.setViewUrls(urls); banner.setOnBannerItemClickListener(new BannerLayout.OnBannerItemClickListener() { @Override public void onItemClick(int position) { Toast.makeText(MainActivity.this, String.valueOf(position), Toast.LENGTH_SHORT).show(); } }); } }
有了这个例子 图片轮播 还是非常简单的喽 最后附上demo地址:
https://github.com/yuanchongzhang/Lunbo
附上运行效果图