Làm cách nào để chuyển đổi Bitmap thành Drawable trong Android?


446

Làm cách nào tôi có thể chuyển đổi hình ảnh Bitmap thành Drawable?


2
Xin chào tôi đã có câu trả lời cho câu hỏi của bạn theo liên kết này và có câu trả lời đúng tôi làm điều đó. và tôi thành công, tôi hy vọng bạn có được thành công. chúc may mắn nhất androidsnippets.com/convert-bitmap-to-drawable
Zala Janaksinh

2
Đóng góp là một cách tuyệt vời để nói thanx ... :) Đóng góp về mặt đưa ra câu trả lời ... :)
Farhan

@Farhan k .......
Abhi

Câu trả lời:


264

Âm thanh như bạn muốn sử dụng BitmapDrawable

Từ tài liệu:

Một Drawablekết thúc tốt đẹp một bitmap và có thể được lát, kéo dài hoặc căn chỉnh. Bạn có thể tạo một BitmapDrawableđường dẫn tệp, luồng đầu vào, thông qua lạm phát XML hoặc từ một Bitmap đối tượng.


21
@Deprecated Sử dụng BitmapDrawable (Tài nguyên, Bitmap) để đảm bảo rằng drawable đã đặt chính xác mật độ mục tiêu của nó.
Camille Sévigny

79
bài viết không hữu ích, bình luận không hữu ích. sẽ tốt hơn nếu bạn thêm một số mã
voghDev

827

Hãy thử nó chuyển đổi một Bitmaphình ảnh loại thànhDrawable

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

Đây là những gì tôi mong đợi!
mazend

147

Đã thấy một số lượng lớn các vấn đề với bitmap tỷ lệ không chính xác khi chuyển đổi thành a BitmapDrawable, cách chung để chuyển đổi phải là:

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

Không có Resources reference, bitmapcó thể không hiển thị đúng, ngay cả khi được chia tỷ lệ chính xác. Có rất nhiều câu hỏi ở đây sẽ được giải quyết đơn giản bằng cách sử dụng phương thức này thay vì một cuộc gọi thẳng chỉ với bitmapđối số.


12
Ít nhất là nhận xét tại sao nếu bạn sẽ bỏ phiếu. Đây là một câu trả lời hoàn toàn hợp lệ và mang lại thông tin bổ sung để giải quyết các vấn đề có thể xảy ra với các câu trả lời khác được cung cấp. Các bản vẽ được tạo trực tiếp từ bitmap thường có lỗi mở rộng mà không có tham chiếu getResource ().
Zulaxia

4
đây là một câu trả lời chính xác hơn khi xem câu trả lời từ @Manoj không được chấp nhận.
Raykud

35

Tài liệu chính thức Bitmapdrawable

Đây là ví dụ về cách chuyển đổi bitmap thành drawable

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

xin lỗi ... tôi không nghiêm túc
Abhi

5
Bạn có thể đã nâng cao thay vì viết cùng một câu trả lời.
CopsOnRoad

31

Tôi đã sử dụng với bối cảnh

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

5
Câu trả lời trùng lặp.
CopsOnRoad

19

Nếu bạn có một hình ảnh bitmap và bạn muốn sử dụng nó trong drawable, như

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

20
Điều đó bây giờ không được chấp nhận. Sử dụng hàm tạo BitmapDrawable (Tài nguyên, Bitmap) ngay bây giờ.
schlingel

1
@schlingel Nó vẫn hoạt động tốt và nhiều người trong chúng ta đang sử dụng nó trong các dự án của chúng tôi,
Pir Fahim Shah

2
Điều đó tốt cho bạn, nhưng không giúp ích gì khi Google cuối cùng giết chết nhà xây dựng này và bạn phải viết lại mọi thứ.
schlingel

@schlingel có, nhưng vẫn còn một số người vội vàng sử dụng cái này và nó tạo ra một tác phẩm
Pir Fahim Shah

11

Chỉ cần làm điều này:

private void setImg(ImageView mImageView, Bitmap bitmap) {

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

1
Không phải là giải pháp cho những gì anh ta yêu cầu
IIRed-DeathII 7/10/2015

2

1) bitmap để có thể vẽ:

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

2) có thể vẽ thành Bitmap:

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

1

đây là một số khác:

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

0

chuyển đổi bản đồ bit thành drawable trong ứng dụng sketchware bằng mã

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.