urlConnection的网络访问

来源:互联网 发布:matlab 声明一个数组 编辑:程序博客网 时间:2024/05/22 05:17
public class MainActivity extends AppCompatActivity {    private ListView lv;    private List<Bitmap> bitmaps;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        lv = (ListView) findViewById(R.id.lv);        //子线程中获取数据       new Thread(){           @Override           public void run() {               super.run();               bitmaps = getlist_item();           }       }.start();        //给listview设置适配器        lv.setAdapter(new BaseAdapter() {            @Override            public int getCount() {                //listview长度                return bitmaps.size();            }            @Override            public Object getItem(int i) {                return null;            }            @Override            public long getItemId(int i) {                return 0;            }            @Override            public View getView(int i, View view, ViewGroup viewGroup) {                if (view == null){                    view = View.inflate(MainActivity.this,R.layout.list_item,null);                }                //找到控件,插入数据                ImageView iv = (ImageView) view.findViewById(R.id.iv);                iv.setImageBitmap(bitmaps.get(i));                return view;            }        });    }    public  List<Bitmap> getlist_item() {        List<Bitmap> Bitmaplist = new ArrayList<Bitmap>();        try {            //获取网址(当前为其他网址可以使用)//网址有问题无法访问(可直接访问不可以用代码访问)            URL url = new URL("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");            //获取urlConnection            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();            //使用urlConnection获取状态码            int responseCode = urlConnection.getResponseCode();            //判断状态是否成功链接            if (responseCode == 200){                //获取获取到InputStream流                InputStream inputStream =   urlConnection.getInputStream();                //使用BufferedReader读取网页中的信息                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));                //获取BufferedReader,用来得到json字符串                StringBuffer stringBuffer = new StringBuffer();                String line;                //循环读取存储到StringBuffer中                while((line = reader.readLine()) != null){                    Log.e("getlist_item: ",line );                    //json字符串                    stringBuffer.append(line);                }                //获取gson                Gson gson = new Gson();                //将json串转换成Java对象                JavaBean javaBean = gson.fromJson(stringBuffer.toString(), JavaBean.class);                //循环读取Java对象中的信息                for (int i=0;i<javaBean.getData().getPc_feed_focus().size();i++){                    //获得图片地址                    String image_url = javaBean.getData().getPc_feed_focus().get(i).getImage_url();                    URL imgurl = new URL("http:"+image_url);                    //获取urlConnection                    HttpURLConnection imgurlConnection = (HttpURLConnection) imgurl.openConnection();                    //使用urlConnection获取状态码                    int imgresponseCode = imgurlConnection.getResponseCode();                    //判断是否成功连接                    if (imgresponseCode == 200){                        //获取获取到InputStream流                        InputStream inputStream1 = imgurlConnection.getInputStream();                        //使用BitmapFactory来处理得到图片                        Bitmap bitmap = BitmapFactory.decodeStream(inputStream1);                        //放入图片集合                        Bitmaplist.add(bitmap);                    }                }            }else {            }            //返回集合            return Bitmaplist;        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return null;    }}
原创粉丝点击