Chciałbym stworzyć "papier milimetrowy" do bitmapy, którą rysuję za pomocą płótna, i próbuję znaleźć najlepszy sposób, aby to zrobić.Układanie bitmapy na płótnie
Nie mogę przekazać źródłowej bitmapy zawierającej tło wykresu do konstruktora Canvas, ponieważ przesyłam płótno w SurfaceView za pomocą wywołania .lockCanvas().
Niektóre rozwiązania próbowałem:
Próbowałem wykonawczych this solution w moim SurfaceView za Thread.run(), ale problem moim zdaniem jest, gdy BitmapDrawable jest konwertowany na bitmapę ... traci właściwości płytek.
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);
Jeśli korzystam z Canvas.drawBitmap method that takes a destination RectF as a parameter, wygląda na to, że bitmapa zostanie wypełniona płytkami w celu wypełnienia RectF ... ale jak zadeklarować RectF niezawodnie, który wypełnia cały obszar widoku?
- Ustawienie tła działań na pożądany wygląd papieru wykresu również nie działa, ponieważ układ mapy bitowej/płótna jest nieprzezroczysty, a bloki nie są widoczne.
Jakieś pomysły, jak to osiągnąć?
Używana metoda BitmapDrawable.draw (Canvas), działa doskonale, dzięki! –
Być może zauważając, że musisz ustawić myBitmapDrawable.setTileModeX (Shader.TileMode.POWTARZAĆ); i myBitmapDrawable.setTileModeY (Shader.TileMode.REPEAT); aby właściwie narysować kafelki ... – bk138
Shadery bitmapowe są takie fajne !! – rupps