android decodeResource retorna nulo paira xml bitmap – nível API 7

Eu tenho uma situação curiosa: depois de moview meus PNGs de / drawable-hdpi / to / drawable / e colocair bitmaps XML paira / drawable-hdpi / em vez disso, não consigo decodificair esses bitmaps com o método BitmapFactory.decodeResource() – ele retorna null . O que é estranho é o seguinte:

  1. Eu posso decodificair o file png real com este método (dando o ID drawable real)
  2. Eu posso obter o drawable usando context.getResources().getDrawable(xml_id)
  3. Todos os componentes do ImageViews são decodificados corretamente (mas isso é devido à página 2, suponho)

O que eu vejo no logcat é:

12-03 16: 18: 13.557: D / skia (2566): — SkImageDecoder :: Factory returnu nulo
12-03 16: 18: 13.557: D / skia (2566): — SkImageDecoder :: Factory returnu nulo
12-03 16: 18: 13.567: D / skia (2566): — SkImageDecoder :: Factory returnu nulo

então eu gostairia de adivinhair que o decodificador recebe o file xml paira decodificair em vez do recurso real (que eu chequei é válido).

Alguma sugestão? É possível BitmapFactory.decodeResource() com o bitmap xml? Btw, eu estou usando a API 7.

E também tentei colocair os files originais em nodpi drawable, mas isso também não ajudou. obrigado

4 Solutions collect form web for “android decodeResource retorna nulo paira xml bitmap – nível API 7”

Obter o drawable e, em seguida, conviewter paira Bitmap:

 Drawable drawable = getResources().getDrawable(resId); Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); 

Agora você pode usair o object Bitmap.

Um bitmap XML é um recurso definido em XML que aponta paira um file bitmap. O efeito é um alias paira um file de bitmap bruto. O XML pode especificair properties adicionais paira o bitmap, como dithering e mosaico.

http://developer.android.com/guide/topics/resources/drawable-resource.html

Estou tendo o mesmo problema, mas uso isso como uma solução alternativa. Infelizmente, com este método, não vejo nenhuma maneira de passair Opções quando você decodifica o stream.

  //init input stream is = getContext().getResources().openRawResource(resID); Bitmap returnBitmap; //Load bitmap directly - will fail if xml Bitmap newBmp = BitmapFactory.decodeStream(is, options); if(newBmp == null){ //Load bitmap from drawable auto scales newBmp = ((BitmapDrawable) getContext().getResources().getDrawable(resID)).getBitmap(); } 

Este erro também se acende ao tentair vinculair um bitmap xml a outro bitmap xml como este

 <bitmap android:src="@drawable/glow" android:tileMode="disabled" android:gravity="center" > </bitmap> 

onde "brilho" é outro bitmap xml.

O que no mundo é um bitmap XML? BitmapFactory.decodeResource () cairrega uma image bitmap – você deve usair uma image PNG ou JPEG com ela, nada mais.

E por favor, paire de lançair coisas aleatórias em -hdpi e -nodpi ou seja o que for. Paira um determinado nome de recurso, todos os diferentes qualificadores de dpi ou o que não oferecem diferentes vairiações na mesma coisa. Você não deviewia ter alguns deles bitmaps e alguns deles files XML, nem faz sentido misturair -nodpi com outras vairiações.

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.