0

我使用以下代码来初始化我的位图变量:

Bitmap bitmap = ((BitmapDrawable)this.model.gameView.context.getResources().getDrawable(R.drawable.pic1)).getBitmap();

当我尝试记录该位图的宽度时,该日志甚至不会为该调用输出任何内容。

我知道它正在到达那条线,因为我跟踪了代码。

此外,当我尝试为位图绘制 canvas.draw 时,屏幕上没有绘制任何内容。

我用矩形绘制的所有东西都可以正常工作。

我的图片资源是PNG。

任何帮助表示赞赏!

4

3 回答 3

2

为您的位图类尝试类似的方法。

public class DrawBitmap extends View
{
    Bitmap bitmap;

    public DrawBitmap(Context content)
    {
        super(content);

        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic1);
    }

    @Override
    protected void onDraw(Canvas canvas)
    {
        super.onDraw(canvas);
        canvas.drawColor(Color.BLACK);//whatever color you want, make sure it's not the same as your image
        canvas.drawBitmap(bitmap, (canvas.getWidth()), 0, null);
    }
}

主班

public class Main extends Activity 
{

    DrawBitmap myView;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myView = new DrawBitmap(this);
        setContentView(myView);
    }
}
于 2012-08-09T20:18:55.137 回答
1

尝试使用 BitmapFactory.decodeResource 查看本主题中的答案: 如何将 Drawable 转换为位图?

于 2012-08-09T19:55:08.847 回答
0

刚刚想通了。它与我使用的位图加载方法无关。这是我的一个逻辑错误。我的代码意外地遇到了我的位图变为空的情况,它试图在画布上绘制空资源。

于 2012-08-09T20:19:34.977 回答