Some questions on using the canvas in Java to draw shapes and paths for Android? -



Some questions on using the canvas in Java to draw shapes and paths for Android? -

how find coordinates of screen? know e.g. phone have 960 x 540 resolution, in emulators of edges not filled if draw shape resolution. there way around this?

for colour of rectangle, seen there 2 rectangles, , 2 of them have same colour despite giving 2 separate colours drawpaint. setting new variable e.g. drawpaint2 returns errors. how alter colour of both?

how utilize path function in canvas. e.g. draw triangle? have included effort in code doesn't display triangle.

public class drawview extends view implements ontouchlistener { private paint backgroundpaint = new paint(); private paint drawpaint = new paint(); private paint circlepaint = new paint(); private paint textpaint = new paint(); private paint path = new paint(); private float sx, sy; public drawview(context context) { super(context); setfocusable(true); setfocusableintouchmode(true); backgroundpaint.setcolor(color.cyan); backgroundpaint.setantialias(true); backgroundpaint.setstyle(style.fill); drawpaint.setcolor(color.white); drawpaint.setstyle(style.fill); circlepaint.setcolor(color.dkgray); circlepaint.setstyle(style.fill); textpaint.setcolor(color.white); textpaint.setstyle(style.fill); drawpaint.setcolor(color.green); drawpaint.setstyle(style.fill); circlepaint.setcolor(color.red); circlepaint.setstyle(style.fill); path.setcolor(android.graphics.color.red); path.setstyle(paint.style.fill); path path = new path(); path.moveto(1, 1); path.lineto(20, 50); path.moveto(20, 50); path.lineto(100, 100); path.moveto(100, 100); path.lineto(1, 1); path.close(); this.setontouchlistener(this); } @override public void ondraw(canvas canvas) { //canvas.drawpath(path, paint); <-- error // draw background canvas.drawrect(this.getleft(), this.gettop(), this.getright(), this.getbottom(), backgroundpaint); //to draw 2 rectangle bluish , greenish paint canvas.drawrect(100,100, 340,540, drawpaint); canvas.drawrect(00,00, 120,80, drawpaint); //draw text paint canvas.drawtext("hello dear leader!", 110, 160, textpaint); //draw circle greenish paint touch coordinates canvas.drawcircle(sx-30,sy-30, 30, circlepaint); //draw circle reddish paint touch coordinates canvas.drawcircle(sx-80, sy-80, 10, circlepaint); } public boolean ontouch(view v, motionevent event) { //update coordinates ondraw method above, wherever touch sx = event.getx(); sy = event.gety(); invalidate(); homecoming true; } }

for size can phone call canvas.getwidth() , canvas.getheight() , values percentage of those. never assume constant!

you need utilize 2 separate paints utilize 2 different colors. , remember each paint object needs initialisation.

// objects private paint drawpaint_wh = new paint(); private paint drawpaint_gr = new paint(); // during construction drawpaint_wh.setcolor(color.white); drawpaint_wh.setstyle(style.fill); drawpaint_gr.setcolor(color. green); drawpaint_gr.setstyle(style.fill); // , during draw() canvas.drawrect(100,100, 340,540, drawpaint_wh); canvas.drawrect(0,0, 120,80, drawpaint_gr);

and create triangle:

// object private path trianglepath; // during construction trianglepath = new path(); trianglepath.moveto(10, 10); // starting point trianglepath.lineto(10, 50); // 1st vertix trianglepath.lineto(50, 10); // 2nd vertix trianglepath.lineto(10, 10); // 3rd vertix , close // during draw() canvas.drawpath(trianglepath, drawpaint_gr) // or whatever paint want

ps.: color background it's easier phone call canvas.drawcolor(int colorval);

java android

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -