Я хотел бы создать вид «миллиметровой бумаги» для растрового изображения, которое я рисую с помощью холста, и пытаюсь найти лучший способ сделать это.
Я не могу передать исходный Bitmap, содержащий фон миллиметровой бумаги, в конструктор Canvas, так как я получаю Canvas в SurfaceView через вызов .lockCanvas ().
Некоторые решения, которые я пробовал:
Я пробовал реализовать это решение в моем SurfaceView Thread.run (), но проблема, я считаю, заключается в том, что когда BitmapDrawable преобразуется в Bitmap ... он теряет свойства плитки.
холст = mSurfaceHolder.lockCanvas (ноль); BitmapDrawable TileMe = новый BitmapDrawable (BitmapFactory.decodeResource (getResources (), R.drawable.editor_graph)); TileMe.setTileModeX (Shader.TileMode.REPEAT); TileMe.setTileModeY (Shader.TileMode.REPEAT);
Растровое изображение b = TileMe.getBitmap (); canvas.drawBitmap (b, 0, 0, ноль);
Если я использую Canvas.drawBitmap, который принимает целевой RectF в качестве параметра, похоже, что растровое изображение будет выложено плиткой, чтобы заполнить RectF ... но как мне надежно объявить RectF, который заполняет всю область просмотра?
- Установка желаемого вида миллиметровой бумаги для фона «Действия» также не работает, поскольку растровое изображение / макет холста непрозрачны и блокируют его просмотр.
Есть идеи, как этого добиться?