首先呢,附上我的代码,字符串可以获取,唯独图片获取不到,这该怎么办,大大们帮忙看看,给我点介意,我会感激不尽。
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不堵塞