Android 画布比屏幕大

Android 画布比屏幕大,android,Android,我正在绘制一个网格,我希望它大于屏幕大小,以便用户可以向左/向右/向上/向下拖动屏幕,以到达网格的其余部分 最好的方法是什么?我试着在画布上画一个更大的位图,但没有成功 protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setStyle(Paint.Style.FILL); paint.setColo

我正在绘制一个网格,我希望它大于屏幕大小,以便用户可以向左/向右/向上/向下拖动屏幕,以到达网格的其余部分

最好的方法是什么?我试着在画布上画一个更大的位图,但没有成功

 protected void onDraw(Canvas canvas) {
       super.onDraw(canvas);

       Paint paint = new Paint();
       paint.setStyle(Paint.Style.FILL);
       paint.setColor(Color.WHITE);

       Bitmap testBitmap = Bitmap.createBitmap(1000, 1000, Bitmap.Config.ARGB_8888);
       canvas.drawBitmap(testBitmap, 0, 0, paint);

       canvas.drawPaint(paint);

       //other grid drawing code here
  }

您可能可以使用canvas.translate(x,y)方法。这将调整画布相对于屏幕的原点。所以canvas.translate(10,10)将使画布原点(0,0)位于屏幕上的(10,10)点。使用负片平移来滚动屏幕。

您可能可以使用canvas.translate(x,y)方法。这将调整画布相对于屏幕的原点。所以canvas.translate(10,10)将使画布原点(0,0)位于屏幕上的(10,10)点。使用否定翻译来滚动屏幕。

我在活动的onTouch方法中使用了视图的scrollBy()方法。它成功了。

我在活动的onTouch方法中使用了视图的scrollBy()方法。它起作用了。

这意味着我需要重新绘制屏幕上当前的所有内容,不是吗?不应该,它只是重新定位画布,画布上绘制的所有内容都是相对于画布位置的,也就是说,如果它使画布重新定位,那么是的,你必须对翻译进行补偿。这意味着我需要重新绘制我当前在屏幕上的所有内容,不是吗?它不应该只是重新定位画布,画布上绘制的所有内容都是相对于画布位置的,也就是说,如果它使画布重新定位,那么是的,你得赔偿翻译费。