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.