网络获取图片无限轮播加小圆点联动
来源:互联网 发布:淘宝运营教程百度云 编辑:程序博客网 时间:2024/05/22 09:01
加载Gson包和ImageLoader包
AndroidManifest里添加网络权限<uses-permission android:name="android.permission.INTERNET"/>自己重写一个Application
重写onCreate添加ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this);ImageLoader.getInstance().init(configuration);application里添加
android:name=".MyApplication"android:theme="@style/Theme.AppCompat.Light"shape1.xml 未选中时小圆点的颜色<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#800000"/> <corners android:radius="8dp"/></shape>shape2.xml 选中时小圆点的颜色<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#f0f"/> <corners android:radius="8dp"/></shape>item.xml 小圆点的布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <View android:layout_width="8dp" android:layout_height="8dp" android:layout_margin="10dp" android:id="@+id/yuandain_view" android:background="@drawable/shape1" /></LinearLayout>activity_main 主MainActivity布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/main_viewPager" android:layout_width="wrap_content" android:layout_height="250dp" android:layout_alignParentTop="true"/> <LinearLayout android:orientation="horizontal" android:id="@+id/ll" android:layout_width="wrap_content" android:layout_height="10dp" android:layout_below="@id/main_viewPager" android:layout_marginTop="-10dp" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /></RelativeLayout>
主MainActivitypublic class MainActivity extends AppCompatActivity { //Json串的网址 private final static String JSON_URL = "http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9"; //盛放轮播图的网址的集合 private List<String> lunboImageURL; private ViewPager viewPager; //盛放数据的集合 private List<JavaBean.DataBean.ComicsBean> comicsBeens; //盛放小圆点的集合 private List<View> yuandainLisr; //标题集合 private List<String> image_titleList; //异步Handle private Handler handler; //小圆点的容器 private LinearLayout linearLayout; private int old_list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件 viewPager = (ViewPager) findViewById(R.id.main_viewPager); linearLayout = (LinearLayout) findViewById(R.id.ll); lunboImageURL=new ArrayList<>(); yuandainLisr=new ArrayList<>(); handler=new Handler(){ @Override public void handleMessage(Message msg) { //handle里修改ViewPager的当前视图 viewPager.setCurrentItem(msg.what); //设置viewpager的位置 viewPager.setCurrentItem(msg.what%yuandainLisr.size()); //设置圆点与图片的联动 yuandainLisr.get(old_list).setBackgroundResource(R.drawable.shape1); yuandainLisr.get(msg.what%yuandainLisr.size()).setBackgroundResource(R.drawable.shape2); old_list=msg.what%yuandainLisr.size(); } }; //异步AsyncTask请求网络 获取数据 new AsyncTask<String, Integer, String>() { @Override protected String doInBackground(String... strings) { try { URL url = new URL(JSON_URL); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //获取状态码 int responseCode = connection.getResponseCode(); if (responseCode == 200) { Gson gson = new Gson(); //Json解析 JavaBean javaBean = gson.fromJson(new InputStreamReader(connection.getInputStream()), JavaBean.class); //数据给集合 comicsBeens= javaBean.getData().getComics(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //循环数据集合 取出图片的网址并创建和图片个数一样多的小圆点 for (JavaBean.DataBean.ComicsBean bean : comicsBeens) { lunboImageURL.add(bean.getCover_image_url()); //获取小圆点的布局 View view = View.inflate(MainActivity.this, R.layout.item, null); View yuandianView = view.findViewById(R.id.yuandain_view); //吧小圆点放入集合 yuandainLisr.add(yuandianView); //linearLayout添加小圆点的布局 linearLayout.addView(view); //设置小圆点第一个被选中 yuandainLisr.get(0).setBackgroundResource(R.drawable.shape2); } //实例化适配器 ViewPager_Adapter adapter=new ViewPager_Adapter(MainActivity.this,lunboImageURL); //ViewPager添加适配器 viewPager.setAdapter(adapter); } }.execute(); //写一个线程 ViewPager自动轮播 new Thread(){ @Override public void run() { super.run(); //死循环 while(true){ try { //顺面两秒 sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } //获取当前的ViewPager页的索引 int currentItem = viewPager.getCurrentItem(); //索引+1 为下一个ViewPager页 currentItem++; //发送给handle handler.sendEmptyMessage(currentItem); } } }.start(); }}
适配器
public class ViewPager_Adapter extends PagerAdapter {
private Context context;
private List<String> imageUrls;//盛放图片网址的集合 public ViewPager_Adapter(Context context, List<String> imageUrls) { this.context = context; this.imageUrls = imageUrls; } @Override public int getCount() { return imageUrls.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) {//自己新建一个ImageView ImageView imageView=new ImageView(context);//网络获取 ImageLoader.getInstance().displayImage(imageUrls.get(position),imageView); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}
阅读全文
1 0
- 网络获取图片无限轮播加小圆点联动
- 无限轮播加小圆点(从网络获取图片)
- viewpager无限轮播(从网络上获取图片小圆点)
- 自定义----Banner 轮播加小圆点>> 获取网络图片 点击事件
- 无限轮播加小圆点
- 网络缓冲图片添加小圆点和无限轮播
- 获取网络图片httpclicent--AsyncTask-小圆点图片轮播
- Viewpager无限轮播加小圆点
- viewpager无限轮播加小圆点
- 获取网络图片进行自动轮播图加小圆点
- 图片轮播加小圆点
- ViewPager无限自动轮播小圆点+网络加载图片+活动倒计时
- 解析接口中的json串网络图片数据,实现效果为无限轮播图+小圆点
- Android 开发中的应用:ViewPager无限轮播(网络图片,小圆点)
- Glide+Banner网络请求加载图片实现无限自动轮播+小圆点
- 根据接口获取图片的无限轮播,带小圆点+Listview
- ViewPager无限轮播加xml小圆点
- ViewPager自动无限轮播加小圆点
- Tesseract-OCR识别图片验证码
- JS初级实战练习题----附答案
- 集合类 数组 Map set queue List
- Tar 解压缩
- 资讯精选 | 人工智能正面临克隆风险!
- 网络获取图片无限轮播加小圆点联动
- 资深程序员之路(3)--设计模式与UML class图
- Android中PopupWindow的使用
- 批量去除Word的向下小箭头
- 显示全部
- Python3爬虫之六网页的初步分析【抓取豆瓣最新电影影评并用词云显示】
- 自学redis简单命令
- 解决git无法clone提示443以及配置git代理方法
- AngularJS(DIY)