urlConnection的网络访问

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;
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值