Представление списка Android - PullRequest
0 голосов
/ 27 декабря 2010

Я хочу создать действие, которое будет загружать изображения из Интернета, используя URL-адреса, и я хочу загрузить эти изображения в виде списка, и мне нужен определенный текст и свойства этого изображения перед этим изображением, как на изображении ниже Нажмите, чтобы увидеть изображение . Есть ли способ временно сохранить эти изображения в памяти телефона. Как я могу выполнить это задание, пожалуйста, дайте мне идеальное решение, чтобы я мог заполнить свое заявление. Как я могу загрузить изображения извеб.

1 Ответ

0 голосов
/ 27 декабря 2010

Давайте попробуем вот так

URL img_value = новый URL (img [позиция]);

               Bitmap mIcon1 = BitmapFactory.decodeStream(img_value.openConnection().getInputStream());

                holder.image.setImageBitmap(mIcon1); 

здесь holder.image - это виджет изображения, сохраненный в вашем xml для просмотра изображений.

Он напрямую загружает изображение с данного URL. или попробуйте вот так ниже, создав класс с именем DrawableManager ...

new DrawableManager (). FetchDrawableOnThread (VAL3 [position], holder.icon);

package com.fsp.demo;
import java.io.IOException;
import java.io.InputStream;
import java.lang.ref.SoftReference;
import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Map;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.ImageView;

public class DrawableManager {
    @SuppressWarnings("unchecked")
    private final Map drawableMap;

    public DrawableManager() {
        drawableMap = new HashMap<String, SoftReference<Drawable>>();
    }

    @SuppressWarnings("unchecked")
    public Drawable fetchDrawable(String urlString) {
        SoftReference<Drawable> drawableRef = (SoftReference<Drawable>) drawableMap
                .get(urlString);
        if (drawableRef != null) {
            Drawable drawable = drawableRef.get();
            if (drawable != null)
                return drawable;
            // Reference has expired so remove the key from drawableMap
            drawableMap.remove(urlString);
        }

        if (Constants.LOGGING)
            Log.d(this.getClass().getSimpleName(), "image url:" + urlString);
        try {
            InputStream is = fetch(urlString);
            Drawable drawable = Drawable.createFromStream(is, "src");
            drawableRef = new SoftReference<Drawable>(drawable);
            drawableMap.put(urlString, drawableRef);
            if (Constants.LOGGING)
                Log.d(this.getClass().getSimpleName(),
                        "got a thumbnail drawable: " + drawable.getBounds()
                                + ", " + drawable.getIntrinsicHeight() + ","
                                + drawable.getIntrinsicWidth() + ", "
                                + drawable.getMinimumHeight() + ","
                                + drawable.getMinimumWidth());
            return drawableRef.get();
        } catch (MalformedURLException e) {
            if (Constants.LOGGING)
                Log.e(this.getClass().getSimpleName(), "fetchDrawable failed",
                        e);
            return null;
        } catch (IOException e) {
            if (Constants.LOGGING)
                Log.e(this.getClass().getSimpleName(), "fetchDrawable failed",
                        e);
            return null;
        }
    }

    @SuppressWarnings("unchecked")
    public void fetchDrawableOnThread(final String urlString,
            final ImageView imageView) {
//      Log.v("Drawable_url",urlString);
        SoftReference<Drawable> drawableRef = (SoftReference<Drawable>) drawableMap
                .get(urlString);
        if (drawableRef != null) {
            Drawable drawable = drawableRef.get();
            if (drawable != null) {
                imageView.setImageDrawable(drawableRef.get());
                return;
            }
            // Reference has expired so remove the key from drawableMap
            drawableMap.remove(urlString);
        }

        final Handler handler = new Handler() {
            public void handleMessage(Message message) {
                imageView.setImageDrawable((Drawable) message.obj);
            }
        };

        Thread thread = new Thread() {
            @Override
            public void run() {
                // TODO : set imageView to a "pending" image
                Drawable drawable = fetchDrawable(urlString);
                Message message = handler.obtainMessage(1, drawable);
                handler.sendMessage(message);
            }
        };
        thread.start();
    }

    private InputStream fetch(String urlString) throws MalformedURLException,
            IOException {
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpGet request = new HttpGet(urlString);
        HttpResponse response = httpClient.execute(request);
        return response.getEntity().getContent();
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...