我想在通过Canvas绘制的Bitmap上创建“方格纸”外观,并尝试找出最佳方法来实现这一点。
由于我是通过.lockCanvas()调用从SurfaceView中获取Canvas,因此无法将包含方格纸背景的源Bitmap传递给Canvas构造函数。
我尝试过以下解决方案: 1. 我尝试在SurfaceView的Thread.run()中实现此解决方案,但问题可能是当BitmapDrawable转换为Bitmap时...它会丢失平铺属性。 canvas = mSurfaceHolder.lockCanvas(null); BitmapDrawable TileMe = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.editor_graph)); TileMe.setTileModeX(Shader.TileMode.REPEAT); TileMe.setTileModeY(Shader.TileMode.REPEAT); Bitmap b = TileMe.getBitmap(); canvas.drawBitmap(b, 0, 0, null);
2. 如果我使用Canvas.drawBitmap方法,该方法以目标RectF作为参数,则似乎位图将被平铺以填充RectF...但是如何可靠地声明一个填充整个视图区域的RectF?
3. 将活动背景设置为所需的方格纸外观也不起作用,因为位图/画布布局是不透明的,并且阻止了其被看到。
有什么想法可以实现这个吗?
我尝试过以下解决方案: 1. 我尝试在SurfaceView的Thread.run()中实现此解决方案,但问题可能是当BitmapDrawable转换为Bitmap时...它会丢失平铺属性。 canvas = mSurfaceHolder.lockCanvas(null); BitmapDrawable TileMe = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.editor_graph)); TileMe.setTileModeX(Shader.TileMode.REPEAT); TileMe.setTileModeY(Shader.TileMode.REPEAT); Bitmap b = TileMe.getBitmap(); canvas.drawBitmap(b, 0, 0, null);
2. 如果我使用Canvas.drawBitmap方法,该方法以目标RectF作为参数,则似乎位图将被平铺以填充RectF...但是如何可靠地声明一个填充整个视图区域的RectF?
3. 将活动背景设置为所需的方格纸外观也不起作用,因为位图/画布布局是不透明的,并且阻止了其被看到。
有什么想法可以实现这个吗?