Java 使用可从资源中绘制的位图初始化位图变量不起作用-使用ANDROID
我使用以下代码初始化位图变量:Java 使用可从资源中绘制的位图初始化位图变量不起作用-使用ANDROID,java,android,bitmap,android-canvas,android-resources,Java,Android,Bitmap,Android Canvas,Android Resources,我使用以下代码初始化位图变量: Bitmap bitmap = ((BitmapDrawable)this.model.gameView.context.getResources().getDrawable(R.drawable.pic1)).getBitmap(); 当我尝试记录位图的宽度时,日志甚至不会为该调用输出任何内容 我知道它已经到了那一行,因为我跟踪了代码 另外,当我尝试为位图绘制canvas.draw时,屏幕上不会绘制任何内容 我用矩形画的一切都很好 我的图片资源是PNG 感谢您
Bitmap bitmap = ((BitmapDrawable)this.model.gameView.context.getResources().getDrawable(R.drawable.pic1)).getBitmap();
当我尝试记录位图的宽度时,日志甚至不会为该调用输出任何内容
我知道它已经到了那一行,因为我跟踪了代码
另外,当我尝试为位图绘制canvas.draw时,屏幕上不会绘制任何内容
我用矩形画的一切都很好
我的图片资源是PNG
感谢您的帮助 尝试使用BitmapFactory.decodeResource 看一下本主题中的答案:
尝试使用BitmapFactory.decodeResource 看一下本主题中的答案:
为位图类尝试类似的方法
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);
}
}
为位图类尝试类似的操作
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);
}
}
我刚想出来。这与我使用的位图加载方法无关。
这是我的一个逻辑错误。我的代码意外地遇到了位图为空的情况,它试图在画布上绘制空资源。刚刚解决了这个问题。这与我使用的位图加载方法无关。
这是我的一个逻辑错误。我的代码意外地出现了位图为空的情况,它试图在画布上绘制空资源。是的,我一开始尝试过,然后又尝试了一次,它的行为与此相同。您是否也尝试过处理该代码上的异常?可能您的png图像在资源文件夹中的位置不正确。我建议检查它是否抛出了Resource Not Found异常。是的,我刚开始尝试了这个,然后又做了一次,它的行为是相同的。您是否也尝试过处理该代码上的异常?可能您的png图像在资源文件夹中的位置不正确。我建议检查它是否抛出资源未找到异常。