package com.bwie.loadimage; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.bwie.loadimage.bean.MenuInfo; import com.bwie.loadimage.utils.StreamTools; import com.google.gson.Gson; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView listview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = (ListView) findViewById(R.id.listview); getMenuInfo("http://apis.juhe.cn/cook/query.php?key=85ccc6561e8247986f378b20ef34589a&menu=" + URLEncoder.encode("祕製紅燒肉")); } public void getMenuInfo(String path) { new AsyncTask<String, Void, String>() { @Override protected String doInBackground(String... strings) { try { HttpURLConnection connection = (HttpURLConnection) new URL(strings[0]).openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5 * 1000); connection.setReadTimeout(5 * 1000); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream is = connection.getInputStream(); String json = StreamTools.getString(is); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); if (s != null) { Gson gson = new Gson(); MenuInfo menuInfo = gson.fromJson(s, MenuInfo.class); List<MenuInfo.ResultBean.DataBean.StepsBean> steps = menuInfo.getResult().getData().get(0).getSteps(); listview.setAdapter(new Myadapter(steps)); } } }.execute(path); } public void loadImage(String imagePath, final ImageView imageview) { new AsyncTask<String, Void, Bitmap>() { @Override protected Bitmap doInBackground(String... strings) { try { HttpURLConnection connection = (HttpURLConnection) new URL(strings[0]).openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5 * 1000); connection.setReadTimeout(5 * 1000); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream is = connection.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(is); return bitmap; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); if (bitmap != null) { imageview.setImageBitmap(bitmap); } else { imageview.setImageResource(R.mipmap.ic_launcher); } } }.execute(imagePath); } class Myadapter extends BaseAdapter { public List<MenuInfo.ResultBean.DataBean.StepsBean> steps; public Myadapter(List<MenuInfo.ResultBean.DataBean.StepsBean> steps) { this.steps = steps; } @Override public int getCount() { return steps.size(); } @Override public Object getItem(int i) { return steps.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view == null) { view = View.inflate(getApplicationContext(), R.layout.item, null); } ImageView image = (ImageView) view.findViewById(R.id.image); TextView tv = (TextView) view.findViewById(R.id.tv); loadImage(steps.get(i).getImg(), image); tv.setText(steps.get(i).getStep()); return view; } } }
Async加載圖片listview
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.