a179583637 2016-06-19 10:46 采纳率: 0%
浏览 1660

大大们,实在不行了,关于从json的图片url获取图片添加到imageview

首先呢,附上我的代码,字符串可以获取,唯独图片获取不到,这该怎么办,大大们帮忙看看,给我点介意,我会感激不尽。
package textview.exam;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import com.baidu.apistore.sdk.ApiCallBack;
import com.baidu.apistore.sdk.ApiStoreSDK;
import com.baidu.apistore.sdk.network.Parameters;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class FragmentMainchatnews extends Fragment {
private String[] title;//标题
private String[] abs;//新闻简介
private String[] url;//新闻详情地址
private String[] datatime;//新闻发布时间
private String[] img_url;//新闻缩略图
Bitmap image;

@Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater,
                         @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = inflater.inflate(R.layout.main_chat_news, null);
    apiTest(view);
    return view;
}

private void apiTest(final View view) {

    Parameters para = new Parameters();

    //para.put("keyword", "娱乐");
    ApiStoreSDK.execute("http://apis.baidu.com/songshuxiansheng/news/news",
            ApiStoreSDK.GET,
            para,
            new ApiCallBack() {

                @Override
                public void onSuccess(int status, String responseString) {
                    Log.i("连接状态:", "连接成功");


                    try {
                        JSONObject dataJson=new JSONObject(responseString);
                        JSONArray data=dataJson.getJSONArray("retData");
                     // 创建一个List集合,List集合的元素是Map
                        List<Map<String, Object>> listItems =new ArrayList<Map<String, Object>>();
                        //for (int i = 0; i < 5; i++) {
                            JSONObject info = data.getJSONObject(0);
                            image=getBitmap("http://p1.pstatp.com/list/9831/218724483");
                            //Bitmap bit= BitmapFactory.decodeFile(info.getString("image_url"));
                            //bit.compress(Bitmap.CompressFormat.JPEG, 100,stream);
                            Map<String, Object> listItem = new HashMap<String, Object>();
                            listItem.put("title", info.getString("title"));
                            listItem.put("image", image);
                            listItem.put("abs", info.getString("abstract"));
                            listItems.add(listItem);
                        //}
                        // 创建一个SimpleAdapter
                        SimpleAdapter simpleAdapter = new SimpleAdapter(getActivity(), listItems,R.layout.news_simple_item,
                                new String[]{"image", "title", "abs"},
                                new int[]{R.id.image, R.id.title, R.id.abs});
                        ListView list = (ListView) view.findViewById(R.id.chat_news);
                        // 为ListView设置Adapter
                        list.setAdapter(simpleAdapter);
                    } catch (JSONException e) {
                        Log.i("获取到数据:",responseString);
                    }  catch (IOException e) {
                        e.printStackTrace();
                    }

                }

                @Override
                public void onComplete() {
                    Log.i("sdkdemo", "onComplete");
                }

                @Override
                public void onError(int status, String responseString, Exception e) {
                    Log.i("sdkdemo", "onError, status: " + status);
                    Log.i("sdkdemo", "errMsg: " + (e == null ? "" : e.getMessage()));
                }

            });

}


    public Bitmap getBitmap(String path) throws IOException {

        URL url = new URL(path);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(5000);
        conn.setRequestMethod("GET");
        if (conn.getResponseCode() == 200) {
            //得到输入流
            InputStream inputStream = conn.getInputStream();
            Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
            return bitmap;
        }
        return null;
    }

}

其次呢,我对线程不是很了解,能不能有大大给我讲解一下它的用法,就拿我这个例子来说,应该怎么写线程就能使ui不堵塞

  • 写回答

2条回答 默认 最新

  • devmiao 2016-06-19 12:58
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R