无限自动轮播加小点加从网上获取图片
来源:互联网 发布:解压 mac 编辑:程序博客网 时间:2024/06/14 09:08
首先的是Activity的Xml布局
<?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" tools:context="com.bwei.jiajiajia.yuekaolianxi2.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="200dp" > </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/doc_layou" android:orientation="horizontal" android:layout_marginTop="170dp" android:layout_centerHorizontal="true" android:layout_width="match_parent" android:gravity="center" android:layout_height="wrap_content"> </LinearLayout> </RelativeLayout>//接着就是对图片的解析和ViewPage的适配和添加小点package com.bwei.jiajiajia.yuekaolianxi2;import android.os.AsyncTask;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.GridView;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import com.bwei.jiajiajia.yuekaolianxi2.bean.NewsData;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { ViewPager vp; ListView lv; GridView gv; NewsData data; LinearLayout doc_layou; MyPagerAdapter adapter; List<ImageView> list_doc; int countrrent; Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { countrrent++; vp.setCurrentItem(countrrent); handler.sendEmptyMessageDelayed(0,2000); super.handleMessage(msg); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vp= (ViewPager) findViewById(R.id.vp); lv= (ListView) findViewById(R.id.lv); gv= (GridView) findViewById(R.id.gv); doc_layou= (LinearLayout) findViewById(R.id.doc_layou); adapter=new MyPagerAdapter(); handler.sendEmptyMessageDelayed(0,2000); initImg(); } private void initImg() { new AsyncTask<String,String,String>(){ @Override protected String doInBackground(String... strings) { return getData(); } @Override protected void onPostExecute(String s) { Gson gson=new Gson(); data=gson.fromJson(s,NewsData.class); vp.setAdapter(adapter); vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { int index=position%list_doc.size(); for (int i = 0; i <list_doc.size() ; i++) { list_doc.get(i).setImageResource(R.drawable.sliding); } list_doc.get(index).setImageResource(R.drawable.slidingr); } @Override public void onPageScrollStateChanged(int state) { } }); initDoc(); super.onPostExecute(s); } }.execute(); } private void initDoc() { list_doc=new ArrayList<>(); if(data!=null) { for (int i = 0; i < data.getResult().getAdvs().size(); i++) { ImageView iv2=new ImageView(MainActivity.this); LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(20,20); params.setMargins(10,5,10,5); if(i==0) { iv2.setBackgroundResource(R.drawable.slidingr); } else { iv2.setBackgroundResource(R.drawable.sliding); } doc_layou.addView(iv2,params); list_doc.add(iv2); } } } private String getData() { String result=""; try { URL url=new URL("http://www.babybuy100.com/API/getShopOverview.ashx"); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); int code=connection.getResponseCode(); if(code==200) { InputStream is=connection.getInputStream(); ByteArrayOutputStream bos=new ByteArrayOutputStream(); int len=-1; byte[] b=new byte[1024]; while((len=is.read(b))!=-1){ bos.write(b,0,len); } result=new String(bos.toByteArray()); } } catch (Exception e) { e.printStackTrace(); } return result; } class MyPagerAdapter extends PagerAdapter{ @Override public int getCount() { if(data!=null) { return Integer.MAX_VALUE; } return 0; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView iv=new ImageView(MainActivity.this); iv.setScaleType(ImageView.ScaleType.CENTER_CROP); ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(MainActivity.this); ImageLoader.getInstance().init(configuration); DisplayImageOptions options=new DisplayImageOptions.Builder().cacheInMemory(true).build(); ImageLoader.getInstance().displayImage(data.getResult().getAdvs().get(position%data.getResult().getAdvs().size()).getPic(),iv,options); container.addView(iv); return iv; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }}
阅读全文
0 0
- 无限自动轮播加小点加从网上获取图片
- 无限自动轮播加小圆点加频道
- ViewPager图片自动轮播加原点
- Viewpager的自动轮播加+GridView网上获取数据+小圆点
- 自动轮播加小圆点
- viewpager自动轮播 加小圆点
- ViewPager图片无限自动轮播
- banner无限自动轮播图片
- 从网络获取图片进行自动轮播以及其他
- 无限自动轮播
- 自动轮播加Scrollview加tablyout加多条目
- 获取网络图片+ViewPager+自动轮播
- ViewPager无限自动轮播
- ViewPager无限自动轮播
- 小圆点加无线轮播加自动轮播
- 图片自动轮播
- 图片自动轮播
- 图片自动轮播
- 微信支付:服务器(Java)统一下单获取prepay_id成功,前端公众号里调用jsapi提示支付验证签名失败
- ES6的了解
- 第三篇 蓝牙工程样例模板
- [笔记1]---廖雪峰老师的Git教程
- Game of Connections -组合数学中的计数问题
- 无限自动轮播加小点加从网上获取图片
- Jenkins检测代码软件要注意
- Csharp进阶:DataTimeDemo,MathDemo,path类
- eclipse+maven生成web项目的war包的操作方法
- webpack3如何正确引用并使用jQuery库
- Uncaught Error: Bootstrap's JavaScript requires jQuery at bootstrap.min.js:6
- 服务器性能优化的正确姿势
- 游戏获取分数
- eclipse启动tomcat卡在Building new Hibernate SessionFactory