Bagaimana cara mengubah Bitmap menjadi Drawable di android?


447

Bagaimana saya bisa mengubah gambar Bitmap ke Drawable?


2
Hai, saya mendapat jawaban dari pertanyaan Anda, ikuti tautan ini dan dapatkan jawaban yang tepat, saya melakukannya. dan saya sukses, saya harap Anda berhasil. best of luck androidsnippets.com/convert-bitmap-to-drawable
Zala Janaksinh

2
Kontribusi adalah cara yang bagus untuk mengucapkan terima kasih ... :) Kontribusi dalam hal memberikan jawaban ... :)
Farhan

@ Farhan k .......
Abhi

Jawaban:


265

Sepertinya Anda ingin menggunakan BitmapDrawable

Dari dokumentasi:

A Drawableyang membungkus bitmap dan dapat di-tile, diregangkan, atau disejajarkan. Anda dapat membuat BitmapDrawabledari jalur file, aliran input, melalui inflasi XML, atau dari Bitmap objek.


21
@Deprecated Gunakan BitmapDrawable (Resources, Bitmap) untuk memastikan bahwa drawable telah mengatur kepadatan target dengan benar.
Camille Sévigny

79
posting tidak berguna, komentar tidak berguna. akan lebih baik jika Anda menambahkan beberapa kode
voghDev

827

Cobalah ini untuk mengkonversi Bitmaptipe gambarDrawable

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

Ini yang saya harapkan!
mazend

147

Setelah melihat sejumlah besar masalah dengan bitmap yang salah penskalaan saat dikonversi ke a BitmapDrawable, cara umum untuk mengonversi harus:

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

Tanpa Resources reference, bitmapmungkin tidak ditampilkan dengan benar, bahkan ketika diskalakan dengan benar. Ada banyak pertanyaan di sini yang akan diselesaikan hanya dengan menggunakan metode ini daripada panggilan langsung dengan hanya bitmapargumen.


12
Setidaknya berikan komentar mengapa jika Anda akan memilih. Ini adalah jawaban yang benar-benar valid, dan membawa informasi tambahan untuk menyelesaikan masalah yang dapat terjadi dengan jawaban lain yang ditawarkan. Drawables yang dibuat langsung dari bitmap sering memiliki kesalahan penskalaan tanpa referensi getResources ().
Zulaxia

4
ini adalah jawaban yang lebih akurat mengingat jawaban dari @Manoj sudah usang.
Raykud

35

Dokumentasi Bitmapdrawable resmi

Ini adalah contoh tentang bagaimana mengkonversi bitmap ke drawable

Bitmap bitmap;  
//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
imageView.setImageDrawable(drawable);

maaf ... saya tidak serius
Abhi

5
Anda dapat memilih alih-alih menulis jawaban yang sama.
CopsOnRoad

31

Saya menggunakan konteks

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

5
Jawaban rangkap.
CopsOnRoad

19

Jika Anda memiliki gambar bitmap dan ingin menggunakannya dalam drawable, like

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

20
Itu sudah usang sekarang. Gunakan konstruktor BitmapDrawable (Sumber Daya, Bitmap) sekarang.
schlingel

1
@ schlingel Masih bekerja dengan baik dan banyak dari kita menggunakannya dalam proyek kami,
Pir Fahim Shah

2
Itu bagus untuk Anda, tetapi tidak membantu ketika Google akhirnya membunuh konstruktor ini dan Anda harus menulis ulang semuanya.
schlingel

@ schlingel ya, tapi masih ada yang terburu-buru menggunakan ini dan itu berhasil
Pir Fahim Shah

11

Lakukan ini:

private void setImg(ImageView mImageView, Bitmap bitmap) {

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

1
Bukan solusi untuk apa yang dia minta
IIRed-DeathII

3

1) bitmap ke Drawable:

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

2) dapat ditarik ke Bitmap:

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

1

ini satu lagi:

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

0

bit map rahasia untuk digambar di aplikasi sketchware menggunakan kode

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.