BitmapFactory.decodeResource返回null值

时间:2010-12-09 22:05:57

标签: android

我想从View对象的内部资源加载位图(源本身在“可绘制”文件中)。

代码是:

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.View;


public class BannerView extends View {



 private Bitmap m_Banner = null;

 public BannerView(Context context, AttributeSet attributeSet) {
  super(context, attributeSet);

  m_Banner = BitmapFactory.decodeResource(getResources(), R.drawable.banner);

 }
}

为什么m_Banner值为空?

提前谢谢

了Kobi

6 个答案:

答案 0 :(得分:4)

Eclipse Project - >在我的案件中,干净有帮助。

答案 1 :(得分:4)

我也有同样的问题,但我发现如果我将图片放入 drawable-ldpi ,它就可以了。我不知道为什么,但这对我有用。

答案 2 :(得分:3)

请确保所有sdk组件(用于eclipse的E.G Eclipse,Android SDK,SDK插件都是最新的)。

答案 3 :(得分:1)

当我使用jpeg图像文件时,我得到了null。但是当我将它转换为png然后在同一个地方使用它时它正常工作

答案 4 :(得分:0)

我的问题是我使用的是R.drawable.clickCamera,但clickCamera实际上是一个XML drawable(对于具有可选状态的按钮),而不是实际图像。那很傻。

答案 5 :(得分:-1)

调用BitmapFactory.decodeResource时检查选项参数。它是此方法的第三个参数,必须设置为false才能返回位图。