2013-05-30 6 views
-1

Я работаю над проектом, где мне нужно отображать кнопки изображений с некоторыми изображениями, сохраненными на SD-карте или с URL-адреса. Как я могу это сделать? Или что лучше? Целью является изменение изображения на кнопке, только замена файла на SD-карте. Существуют ли другие решения, если я не знаю, какие изображения будут отображаться в будущем? THXКнопка отображения изображения с внешнего источника

ответ

0

Вот как загрузить изображение из URL в вытяжке объекта:

InputStream is = (InputStream) new URL("http://my.url/path/to/image").getContent(); 
Drawable buttonBg = Drawable.createFromStream(is, null); 

Затем установите его в качестве фона:

button.setBackgroundDrawable(buttonBg); 

или API 16+ использования:

button.setBackground(buttonBg); 

Если вы хотите прочитать из файла, используйте FileInputStream следующим образом:

FileInputStream fis = openFileInput("/my/path/to/image"); 
Drawable buttonBg= Drawable.createFromStream(fis, null); 
+0

Ну, у меня есть некоторые проблемы ... Если я окружаю URL-адрес входного потока с try/catch (в противном случае я получаю сообщение об ошибке), то получите переменную createFromStream, не инициализированную ... Я попытался инициализировать, но сбой приложения на обед. , – user2438300

0

@carmex Решено:



    ImageButton box1 = (ImageButton)findViewById(R.id.box1); 
    Drawable drawable = GetImg("path/to/image.jpg"); 
    box1.setBackground(drawable); 


    private Drawable GetImg(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("Err="+e); return null; 
    } 
    } 

Thx много.

Смежные вопросы