Is there another way to draw an object on a canvas in android?
This code inside draw() doesn't work:
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pushpin);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
Well actually, it's working on my 1st code but when I've transfered this to another class called MarkOverlay, it's not working anymore.
markerOverlay = new MarkerOverlay(getApplicationContext(), p); listOfOverlays.add(markerOverlay);
What parameter should I pass to MarkerOverlay to make this code work? The error is somewhere in getResources().
FYI, canvas.drawOval is perfectly working but I really want to draw an Image not an Oval. :)
Definition and Usage. The drawImage() method draws an image, canvas, or video onto the canvas. The drawImage() method can also draw parts of an image, and/or increase/reduce the image size. Note: You cannot call the drawImage() method before the image has loaded.
Importing images into a canvas is basically a two step process: Get a reference to an HTMLImageElement object or to another canvas element as a source. It is also possible to use images by providing a URL. Draw the image on the canvas using the drawImage() function.
I prefer to do this as it only generates the image once:
public class CustomView extends View { private Drawable mCustomImage; public CustomView(Context context, AttributeSet attrs) { super(context, attrs); mCustomImage = context.getResources().getDrawable(R.drawable.my_image); } ... protected void onDraw(Canvas canvas) { Rect imageBounds = canvas.getClipBounds(); // Adjust this for where you want it mCustomImage.setBounds(imageBounds); mCustomImage.draw(canvas); } }
package com.canvas; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class Keypaint extends View { Paint p; @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); p=new Paint(); Bitmap b=BitmapFactory.decodeResource(getResources(), R.drawable.icon); p.setColor(Color.RED); canvas.drawBitmap(b, 0, 0, p); } public Keypaint(Context context) { super(context); } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With