Async加载图片listview
来源:互联网 发布:英雄钢笔淘宝旗舰店 编辑:程序博客网 时间:2024/06/05 16:16
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; } }}
阅读全文
0 0
- Async加载图片listview
- Async loading images// 异步加载图片
- 简单使用Async实现图片异步加载
- listview 异步加载图片
- ListView异步加载图片
- ListView 异步加载图片
- ListView异步加载图片
- ListView 异步加载图片
- listview异步图片加载
- ListView异步加载图片
- listview 异步加载图片
- listView异步加载图片
- ListView异步加载图片
- ListView异步加载图片
- listView 异步加载图片
- listView加载图片
- listview异步加载图片
- Android ListView异步加载图片
- url发送get,post请求,应该是最底层的,能够从http,request中直接get到的
- Android Studio 实用工具依赖库
- 2017.7 新的启航
- STM32 中的 assert_param 函数
- java中的 BigDecimal 和 String 的相互转换
- Async加载图片listview
- 树控件--bootstrap treeview
- html汇总-持续更新
- MLlib算法简介
- Windows2003轻松搭建邮件服务器收发外网邮件
- 如何理解并正确使用MySql索引
- Android使用SO库时要注意的一些问题
- 当前iOS10支持的所有跳转
- 获取网络图片