Como converter um bitmap para Drawable no android?


446

Como posso converter uma imagem Bitmap em Drawable?


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.


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);

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.


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


31

Eu usei com contexto

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

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); 

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);
}

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);

1

aqui está mais um:

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

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);
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.