"resolUri не удалось на неверном растровом URI" при помещении изображения в ListView - PullRequest
0 голосов
/ 23 февраля 2011

эй, я новичок в Android и у меня небольшая проблема.Я пытаюсь собрать список с изображениями, загруженными через URL.это работает до сих пор, но изображения не будут отображаться.logcat говорит так:

02-23 19:20:48.447: INFO/System.out(833): resolveUri failed on bad bitmap uri: android.graphics.drawable.BitmapDrawable@405359b0

очевидно, что я не могу найти мое изображение, но я понятия не имею, почему.Использование R.drawable.icon работает, хотя.Может кто-нибудь мне помочь?Вот мой источник:

public class Main extends Activity {
        private ListView lv_main;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        lv_main = (ListView) findViewById(R.id.listviewmain);

        ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();

        HashMap<String,String> map;

        map = new HashMap<String, String>();
        map.put("title", "a title goes here");
        map.put("details", "details blaa");
        map.put("cover", String.valueOf(Main.this.LoadImageFromWebOperations("http://www.google.com/intl/en_ALL/images/srpr/logo1w.png"));
        //THIS WORKS FINE: map.put("cover", String.valueOf(R.drawable.icon));
        listItem.add(map);

        map = new HashMap<String, String>();
        map.put("title", "2nd title");
        map.put("details", "more details");
        map.put("cover", String.valueOf(Main.this.LoadImageFromWebOperations("http://www.google.com/images/srpr/nav_logo37.png"));
        //THIS WORKS FINE: map.put("cover", String.valueOf(R.drawable.icon));
        listItem.add(map);

        SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.listviewitem, new String[] {"cover", "title", "details"}, new int[] {R.id.cover, R.id.title, R.id.details});

        lv_main.setAdapter(mSchedule);
     }

    public Drawable LoadImageFromWebOperations(String url) {
        try
        {
                InputStream is = (InputStream) new URL(url).getContent();
                Drawable d = Drawable.createFromStream(is, "src name");
                return d;
        }catch (Exception e) {
                System.out.println("Exc="+e);
                return null;
        }
    }
}

спасибо заранее.грабят

1 Ответ

6 голосов
/ 02 марта 2011

Я решил эту проблему.Я использую код для решения проблемы.

Здесь 'Путь' - это локальный файловый системный путь, который можно получить с помощью: Environment.getExternalStorageDirectory (). GetAbsolutePath ()

public static String loadImageFromWebOperations(String url, String path) {
    try {
        InputStream is = (InputStream) new URL(url).getContent();

        System.out.println(path);
        File f = new File(path);

        f.createNewFile();
        FileOutputStream fos = new FileOutputStream(f);
        try {

            byte[] b = new byte[100];
            int l = 0;
            while ((l = is.read(b)) != -1)
                fos.write(b, 0, l);

        } catch (Exception e) {

        }

        return f.getAbsolutePath();
    } catch (Exception e) {
        System.out.println("Exc=" + e);
        return null;

    }
}

Надеюсь, это поможет:).

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