php - 如何在异步任务上加载图像

标签 php android mysql json android-asynctask

Android (Java) 使用 asynctask 加载图像

        @Override
        protected String doInBackground(String... arg0) {
            mNewsList = new ArrayList<HashMap<String, String>>();
            JSONParser jParser = new JSONParser();
            JSONObject json = jParser.getJSONFromUrl(URL);
            try {
                mNews = json.getJSONArray(TAG_POSTS);
                for (int i = 0; i < mNews.length(); i++) {
                    JSONObject c = mNews.getJSONObject(i);
                    String image = c.getString(TAG_IMAGE);

            HashMap<String, String> map = new HashMap<String, String>();

                    map.put(TAG_IMAGE, image);
                    mNewsList.add(map);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }

        protected void onPostExecute(String file_url) {
        ListAdapter adapter = new SimpleAdapter(Home.this, mNewsList,
                    R.layout.news_list, new String[] {TAG_IMAGE},
                    new int[]{R.id.ivImage});
            newsList.setAdapter(adapter);
        }

如何使用asynctask加载图像

尝试使用惰性列表适配器,但不适合我的需求。

最佳答案

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
        ImageView bmImage;

        public DownloadImageTask(ImageView bmImage) {
            this.bmImage = bmImage;
        }

        protected Bitmap doInBackground(String... urls) {
            String urldisplay = urls[0];
            Bitmap mIcon11 = null;
            try {
                InputStream in = new java.net.URL(urldisplay).openStream();
                mIcon11 = BitmapFactory.decodeStream(in);
            } catch (Exception e) {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return mIcon11;
        }

        protected void onPostExecute(Bitmap result) {
            bmImage.setImageBitmap(result);
        }

    }

关于php - 如何在异步任务上加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25302743/

相关文章:

android - 如何使用硬件配置文件从命令行创建 AVD?

android - 如何将 Activity 带到堆栈顶部并重置它?

python - MySQL 精确短语匹配

php - CodeIgniter 和 PostgreSQL - 从返回 refcursor 的函数中检索数据

java - Eclipse 中资源不同步错误后文件丢失或删除

javascript - 从 Bootstrap 框架发送电子邮件我的错误是我收到一条消息邮件发送成功但我没有收到任何邮件

php - 动态mysql->excel导出

mysql - 帮助将此 sql 查询转换为 'JOIN' 语法

php - Swiftmailer 发送后删除附件

php - 使用内联 javascript 更改文本框值,保留 2 位小数