안 드 로 이 드 의 새로운 인터넷 방식 볼 리 의 사용 (1) 그림 과 제 이 슨 을 불 러 옵 니 다.
3507 단어 Volley
하지만 오늘 새로운 인터넷 방식 을 발 견 했 습 니 다. 구 글 에 감 사 드 립 니 다Volley
문득 예전 의 그런 것들 을 발견 하 다 HttpClient 나 HttpUrlConnection 다 죽 어.니 가 잘 써.
사용법
ImageVIEW 그림 불 러 오기
핵심 이미지 요청
먼저
private RequestQueue mQueue;
2 OnCreate 방법 에서 초기 화
mQueue = Volley.newRequestQueue(this);
3 ImageRequest 대상 을 만 들 고 mQueue 에 추가 합 니 다.
public void readBitmapViaVolley(String imgUrl, final ImageView imageView) {
ImageRequest imgRequest = new ImageRequest(imgUrl,
new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap arg0) { // TODO Auto-generated method stub imageView.setImageBitmap(arg0); } }, //
300,
200,
Config.ARGB_8888,
new ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
}
}); // 。
mQueue.add(imgRequest); // mQueue , 。
}
위 에서 볼 수 있 듯 이 ImageRequest 의 구조 함수 에서 우 리 는 Bitmap 에 관 한 인 자 를 직접 전달 할 수 있 습 니 다. 예 를 들 어 길이 등 정 보 를 전달 한 다음 에 돌아 오 는 Response. Listener 에서 되 돌아 오 는 결 과 를 얻 을 수 있 습 니 다. 바로 Bitmap 입 니 다. 그리고 onResponse 함수 에서 ImageView 를 설정 하고 마지막 으로 mque 에 추가 할 수 있 습 니 다.
위의 코드 httpclient 와 HttpUrlConnection 다 중 스 레 드 에서 그림 을 방문 하 는 효 과 는 같 지만 코드 가 많이 간결 해 졌 습 니 다.하하, 구 글 에 다시 한 번 감 사 드 립 니 다.
ImageVIEW 로 딩 JSon
일단 그대로.
private RequestQueue mQueue;
mQueue = Volley.newRequestQueue(this);
public void getWeatherInfo(){
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(WEATHER_LINK, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject arg0) {
list.clear();
Iterator<String> it = arg0.keys();
while(it.hasNext()){
String key = it.next();
JSONObject obj = null;
try {
obj = arg0.getJSONObject(key);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (obj != null) {
Iterator<String> objIt = obj.keys();
while (objIt.hasNext()) {
String objKey = objIt.next();
String objValue;
try {
objValue = obj.getString(objKey);
HashMap<String, String> map = new HashMap<String, String>();
map.put("title", objKey);
map.put("content", objValue);
Log.v(TAG, "title = " + objKey + " | content = " + objValue);
list.add(map);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Log.v(TAG, "list.size = " + list.size());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
}
});
mQueue.add(jsonObjectRequest);
제 이 슨 데이터 에 따라 ,사용 가능 JsonArrayRequest 아니면 Json Object Request.