Como converter um bitmap para Drawable no android?

446

Como posso converter uma imagem Bitmap em Drawable?

Farha Ansari
fonte
2
Oi eu tenho a resposta da sua pergunta siga este link e tenho a resposta certa eu faço isso. e eu sucesso, espero que você tenha sucesso. melhor sorte androidsnippets.com/convert-bitmap-to-drawable
Zala Janaksinh
2
A contribuição é uma ótima maneira de dizer thanx ... :) Contribuições em termos de resposta ... :) #
Farhan Far12
@Farhan k .......
quer

Respostas:

264

Parece que você deseja usar BitmapDrawable

A partir da documentação:

Um Drawableque agrupa um bitmap e pode ser lado a lado, esticado ou alinhado. Você pode criar a BitmapDrawablepartir de um caminho de arquivo, fluxo de entrada, inflação por XML ou de um Bitmap objeto.

Graeme Duncan
fonte
21
@ Deprecado Use BitmapDrawable (Recursos, Bitmap) para garantir que o drawable tenha definido corretamente sua densidade de destino.
Camille Sévigny
79
postagem não útil, comentário não útil. seria melhor se você adicionar algum código
voghDev 18/14/14
827

Experimente isso, ele converte uma Bitmapimagem de tipo emDrawable

Drawable d = new BitmapDrawable(getResources(), bitmap);
Manoj
fonte
Isto é o que eu esperava!
mazend 6/02
147

Após ter visto uma grande quantidade de problemas com o dimensionamento incorreto dos bitmaps quando convertidos em a BitmapDrawable, a maneira geral de converter deve ser:

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

Sem o Resources reference, o bitmappode não ser renderizado corretamente, mesmo quando dimensionado corretamente. Existem inúmeras perguntas aqui que seriam resolvidas simplesmente usando esse método, em vez de uma chamada direta apenas com o bitmapargumento.

Zulaxia
fonte
12
Pelo menos, comente por que, se você vai votar em baixa. Essa é uma resposta perfeitamente válida e traz informações extras para resolver problemas que podem ocorrer com as outras respostas oferecidas. Drawables feitos diretamente de um bitmap geralmente apresentam erros de escala sem a referência getResources ().
Zulaxia 03/03
4
esta é uma resposta mais precisa, considerando que a do @Manoj está obsoleta.
Raykud
35

Bitmapdrawable oficial documentação

Este é um exemplo de como converter bitmap em drawable

Bitmap bitmap;  
//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
imageView.setImageDrawable(drawable);
Cristiana Chavez
fonte
desculpe ... eu não era sério
Abhi
5
Você poderia ter votado em vez de escrever a mesma resposta.
CopsOnRoad 4/17/17
31

Eu usei com contexto

//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap);
Samuel Ivan
fonte
5
Resposta duplicada.
CopsOnRoad 4/17/17
19

Se você tem uma imagem de bitmap e deseja usá-la no drawable, como

Bitmap contact_pic;    //a picture to show in drawable
drawable = new BitmapDrawable(contact_pic); 
Pir Fahim Shah
fonte
20
Isso está obsoleto agora. Use o construtor BitmapDrawable (Resources, Bitmap) agora.
Schlingel
1
@schlingel Ainda funcionando bem e muitos de nós estão usando-o em nossos projetos,
Pir Fahim Shah
2
Isso é bom para você, mas não ajuda quando o Google acaba com esse construtor e você precisa reescrever tudo.
Schlingel
@schlingel sim, mas ainda alguém na pressa usar isso e fazer um trabalho
Pir Fahim Shah
11

Apenas faça o seguinte:

private void setImg(ImageView mImageView, Bitmap bitmap) {

    Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
    mImageView.setDrawable(mDrawable);
}
Joolah
fonte
1
Não é a solução para o que ele está perguntando
IIRed-DeathII
2

1) bitmap para Drawable:

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

2) extraível para Bitmap:

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

aqui está mais um:

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

mapa de bits secreto para drawable no aplicativo sketchware usando código

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
amosu dona
fonte