我正在尝试使用以下代码创建一个画布并绘制一个位图:
Paint paint = new Paint();
InputStream is = assets.open("card_art" + File.separator + "texture.png");
Bitmap bitmap = BitmapFactory.decodeStream(is);
cardFrontBackingImageView = new SurfaceView(Order.getContext()).getHolder().lockCanvas();
if (cardFrontBackingImageView == null)
{
Log.e("Canvas creation", "Canvas is null");
}
cardFrontBackingImageView.drawBitmap(bitmap, null, frame, paint);
我遇到的问题是我在代码中检查的问题 - lockCanvas()始终返回null。随着时间的推移,我或多或少都在学习这个,所以我对SurfaceView,SurfaceHolder或Canvas的了解不足以说出我可能做错的方式;有什么建议吗?
答案 0 :(得分:3)
来自doc:
返回的Canvas可以 用于绘制表面的位图。如果是,则返回null 表面尚未创建或无法编辑。你会 通常需要实现Callback.surfaceCreated来查找时间 表面可供使用。