我使用以下代码初始化我的位图变量:
Bitmap bitmap = ((BitmapDrawable)this.model.gameView.context.getResources().getDrawable(R.drawable.pic1)).getBitmap();
当我尝试记录该位图的宽度时,日志甚至不输出该调用的任何内容。
我知道它已经到了那条线,因为我跟踪了代码。
另外,当我尝试使用canvas.draw作为位图时,屏幕上没有任何内容。
我用矩形绘制的一切都很好。
我的图片资源是PNG。
感谢任何帮助!
答案 0 :(得分: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);
}
}
答案 1 :(得分:1)
尝试使用BitmapFactory.decodeResource 看看这个主题的答案: How to convert a Drawable to a Bitmap?
答案 2 :(得分:0)
刚想通了。它与我使用的位图加载方法无关。 这是我的逻辑错误。我的代码意外地遇到了我的位图变为null的情况,并且它试图在画布上绘制空资源。