Создавать выталкиваемые из растрового изображения

ВСЕ,

Как было предложено здесь, мне нужно сделать вывод из моего растрового изображения. Но когда я попытался использовать:

Drawable d = new Drawable( my_bmp); 

Он показывает, что этот конструктор устарел в пользу:

  Drawable(Bitmap bmp, int resourceId) 

Как еще я могу сделать вывод из растрового изображения?

Спасибо.

Solutions Collecting From Web of "Создавать выталкиваемые из растрового изображения"

Вы можете использовать

 Drawable d = new BitmapDrawable(getResources(), my_bmp); 

Drawable, который обертывает растровое изображение и может быть выгравирован, растянут или выровнен. Вы можете создать BitmapDrawable из пути к файлу, потока ввода, через инфляцию XML или из объекта Bitmap.

BitmapDrawable(Resources res, Bitmap bitmap)

Создайте возможность рисования из растрового изображения, задав начальную целевую плотность на основе показателей отображения ресурсов.

Также посмотрите публичные конструкторы @

http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html

Попробуйте загрузить Bitmap как Bitmap Drawable

Создайте ImgDrawableFromFile(Resources res, String file_name) как ImgDrawableFromFile(Resources res, String file_name) ниже

 Drawable d = null; public Drawable ImgDrawableFromFile(Resources res, String file_name) { myBitmap = null; File imgFile = new File( "/data/data/yourpkgname/app_my_sub_dir/images/" + file_name); if (imgFile.exists()) { myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); if (myBitmap != null) { d = new BitmapDrawable(res, myBitmap); return d; } else { return null; } } return null; } 

Теперь эта функция называется

 img.setBackgroundDrawable(ImgDrawableFromFile(getResources(), "1.jpg")); // pass your saved file name as second argument 

Вы можете использовать класс BitmapDrawable для получения Drawable из растрового изображения

Растровое изображение

BitmapDrawable(Bitmap bitmap) deprecated

вы можете использовать

 Drawable drawable = new BitmapDrawable(getResources(), bitmap); 

источник

Немного поздно, но я вижу ясное недоразумение. Полученные ответы действительно правильны:

 Drawable d = new BitmapDrawable(getResources(),bitmap); 

В этом случае getResources() – это метод, доступный в Context или Activity и используется только для определения плотности экрана и соответственно корректировки Drawable.

Итак, Игорь, даже если вы загружаете изображение из облака, вы все равно можете вызвать getResources ().

Счастливое кодирование

Если Мауро Банзе опоздал на вечеринку, я не знаю, что я здесь делаю. Но для тех, кто приходит сюда отчаянно ищет решение, вот что я сделал:

Я наткнулся на ту же проблему, когда привозил проект с JavaFX на Android. Я хотел повторно использовать большинство моих «данных», которые управляют и предоставляют мои данные и не влияют на пользовательский интерфейс.

Достаточно рассказывать историю, здесь мы идем:

Проблема:

  • В какой-то момент нам нужен Drawable чтобы выйти из растрового изображения на экране.
  • Мы хотим загрузить (из облака, Интернета или где угодно) этот растровый файл и сохранить его для последующего использования в качестве Drawable
  • Мы не можем сделать это в классе без Context или неактивности, поскольку нам нужны Resources .

Так почему бы нам просто не сохранить его как Bitmap пока нам не понадобится его рисовать (что, безусловно, произойдет в классе Context или Activity ).

Я создал класс под названием BitmapImage . Это выглядит так:

 public class BitmapImage { private final Bitmap bitmap; public BitmapImage (Bitmap bitmap) { this.bitmap = bitmap; } public Bitmap getBitmap() { return bitmap; } public Drawable getDrawable(Resources res) { return new BitmapDrawable(res,getBitmap()); } 

Этот очень простой класс «сохраняет» битмап. Таким образом, вместо того, чтобы работать с Drawable вы работаете с BitmapImage пока вам действительно не понадобится Drawable .

В этот момент вы должны быть в своем Drawable foo = anyBitmapImage.getDrawable(getResource()) или Context и там вы можете вызвать Drawable foo = anyBitmapImage.getDrawable(getResource()) .