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()方法。它起作用了。这意味着我需要重新绘制屏幕上当前的所有内容,不是吗?不应该,它只是重新定位画布,画布上绘制的所有内容都是相对于画布位置的,也就是说,如果它使画布重新定位,那么是的,你必须对翻译进行补偿。这意味着我需要重新绘制我当前在屏幕上的所有内容,不是吗?它不应该只是重新定位画布,画布上绘制的所有内容都是相对于画布位置的,也就是说,如果它使画布重新定位,那么是的,你得赔偿翻译费。