Jak przekonwertować mapę bitową na Drawable w Androidzie?


447

Jak przekonwertować obraz bitmapowy na Drawable?


2
Cześć, mam odpowiedź na twoje pytanie, skorzystaj z tego linku i uzyskaj właściwą odpowiedź. i odnoszę sukces, mam nadzieję, że osiągnąłeś sukces. powodzenia androidsnippets.com/convert-bitmap-to-drawable
Zala Janaksinh

2
Wkład jest świetnym sposobem, aby powiedzieć, dziękuję ... :) Wkład w zakresie udzielania odpowiedzi ... :)
Farhan

@Farhan k .......
Abhi

Odpowiedzi:


265

Brzmi jak chcesz BitmapDrawable

Z dokumentacji:

A, Drawablektóry otacza bitmapę i można go kafelkować, rozciągać lub wyrównywać. Możesz utworzyć BitmapDrawableze ścieżki pliku, strumienia wejściowego, poprzez inflację XML lub z Bitmap obiektu.


21
@Deprecated Użyj BitmapDrawable (Resources, Bitmap), aby upewnić się, że drawable poprawnie ustawił docelową gęstość.
Camille Sévigny

79
nieprzydatny post, nieprzydatny komentarz. byłoby lepiej, jeśli dodasz trochę kodu
voghDev

827

Spróbuj przekonwertować Bitmapobraz typu naDrawable

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

Tego się spodziewałem!
mazend

147

Po zaobserwowaniu dużej liczby problemów związanych z nieprawidłowym skalowaniem bitmap po konwersji na a BitmapDrawable, ogólnym sposobem konwersji powinno być:

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

Bez Resources referenceThe bitmapnie może spowodować prawidłowo, nawet gdy skalowane poprawnie. Jest tu wiele pytań, które można rozwiązać po prostu przy użyciu tej metody zamiast zwykłego wywołania z samym bitmapargumentem.


12
Przynajmniej skomentuj dlaczego, jeśli zamierzasz obniżyć głosowanie. Jest to całkowicie poprawna odpowiedź i zapewnia dodatkowe informacje w celu rozwiązania problemów, które mogą wystąpić w przypadku innych oferowanych odpowiedzi. Drawable wykonane bezpośrednio z mapy bitowej często mają błędy skalowania bez odniesienia do getResources ().
Zulaxia,

4
jest to dokładniejsza odpowiedź, biorąc pod uwagę, że ta z @Manoj jest przestarzała.
Raykud,


31

Użyłem z kontekstem

//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap);

5
Duplikat odpowiedzi.
CopsOnRoad,

19

Jeśli masz obraz bitmapowy i chcesz go użyć w trybie rysowania, np

Bitmap contact_pic;    //a picture to show in drawable
drawable = new BitmapDrawable(contact_pic); 

20
To jest już przestarzałe. Użyj teraz konstruktora BitmapDrawable (Resources, Bitmap).
schlingel

1
@schlingel Nadal działa dobrze i wielu z nas używa go w naszych projektach,
Pir Fahim Shah

2
To jest dobre dla ciebie, ale nie pomaga, gdy Google w końcu zabije tego konstruktora i musisz przepisać wszystko.
schlingel

@schlingel tak, ale wciąż ktoś w pośpiechu używa tego i to działa
Pir Fahim Shah

11

Po prostu zrób to:

private void setImg(ImageView mImageView, Bitmap bitmap) {

    Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
    mImageView.setDrawable(mDrawable);
}

1
Nie jest to rozwiązanie tego, o co prosi
II-Red-DeathII

3

1) Mapa bitowa do Drawable:

Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
// mImageView.setDrawable(mDrawable);

2) z możliwością rysowania do mapy bitowej:

Bitmap mIcon = BitmapFactory.decodeResource(context.getResources(),R.drawable.icon_resource);
// mImageView.setImageBitmap(mIcon);

1

Oto kolejny:

Drawable drawable = RoundedBitmapDrawableFactory.create(context.getResources(), bitmap);

0

ukryta mapa bitowa do rysowania w aplikacji szkicowej za pomocą kodu

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.