graphics - Android drawing / colouring app -


i making android colouring app uses draw feature. have there multiple colours user can choose , can select colour , draw when select new colour changes drawn lines not new lines being drawn. on how can rectify , have multiple colours used on drawing appreciated. of code below: first colouring class public class colouring extends view {

// setup initial color private int paintcolor = color.black; private paint drawpaint; private path drawpath; // stores path //private path path = new path();  public colouring(context context, attributeset attrs) {     super(context, attrs);     setfocusable(true);     setfocusableintouchmode(true);     setupcolour(); }  private void setupcolour() {     // setup paint color , stroke styles     drawpath = new path();     drawpaint = new paint();     drawpaint.setcolor(paintcolor);     drawpaint.setantialias(true);     drawpaint.setstrokewidth(15);     drawpaint.setstyle(paint.style.stroke);     drawpaint.setstrokejoin(paint.join.round);     drawpaint.setstrokecap(paint.cap.round); }  @override protected void ondraw(canvas canvas) {     canvas.drawpath(drawpath, drawpaint);  }  public void setcolor(string newcolor) {     invalidate();     paintcolor = color.parsecolor(newcolor);     drawpaint.setcolor(paintcolor);  }  @override public boolean ontouchevent(motionevent event) {     float pointx = event.getx();     float pointy = event.gety();     // checks event occurs     switch (event.getaction()) {         case motionevent.action_down:             drawpath.moveto(pointx, pointy);             return true;         case motionevent.action_move:             drawpath.lineto(pointx, pointy);             break;         default:             return false;     }     // force view draw again     invalidate();     return true; } 

}

and second main activity drawing happens. public class colourimage extends activity {

private colouring drawview; private imagebutton currcolour, save;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_colour_image);     drawview = (colouring)findviewbyid(r.id.colouringbook);     linearlayout paintlayout = (linearlayout) findviewbyid(r.id.colours);     currcolour = (imagebutton) paintlayout.getchildat(0);     currcolour.setimagedrawable(getresources().getdrawable(r.drawable.paint_pressed));      save = (imagebutton)findviewbyid(r.id.save); }  public void saveclicked(view view){     drawview.setdrawingcacheenabled(true);     string saveimage = mediastore.images.media.insertimage(             getcontentresolver(), drawview.getdrawingcache(),             uuid.randomuuid().tostring()+".png", "colouredimage");     if(saveimage!=null){         toast savedtoast = toast.maketext(getapplicationcontext(),                 "your colouring has been saved phone", toast.length_short);         savedtoast.show();     }     else{         toast unsavedtoast = toast.maketext(getapplicationcontext(),                 "your colouring not saved", toast.length_short);         unsavedtoast.show();     }     drawview.destroydrawingcache(); }  public void paintclicked(view view){     if(view!=currcolour){         imagebutton colourimage = (imagebutton)view;         string color = view.gettag().tostring();          drawview.setcolor(color);         colourimage.setimagedrawable(getresources().getdrawable(r.drawable.paint_pressed));         currcolour.setimagedrawable(getresources().getdrawable(r.drawable.paint));         currcolour=(imagebutton)view;     } } 

}

thanks again :)


Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -