android - custom drag and drop -
i begginer android develpoer , tring build small soiltare game. dragging cards implemented custom viewgroup "dragcontainer" 1 of questions here. problem when drag linear layout. linear layout holds cards - margin (to overlap cards) when start drag dragged "shadow" layout without margin. here example
this start of activity, left linear layout 2 children , right
when start drag see
as can see dragged "shadow" bigger(without - margin)
this code custom drag container(only stuff matters):
public boolean startdragchild(view child, clipdata data, object mylocalstate, int flags) { setdragtarget(child); return child.startdrag(data, new emptydragshadowbuilder(child), mylocalstate, flags); } private void setdragtarget(view v) { target = v; onsetdragtarget(v); } /** * similar constructor of dragshadowbuilder * * @param v */ protected void onsetdragtarget(view v) { } @override protected void dispatchdraw(canvas canvas) { super.dispatchdraw(canvas); if (mondrag && target != null) { canvas.save(); drawdragshadow(canvas); canvas.restore(); } } protected void drawdragshadow(canvas canvas) { int h = target.getheight(); int w = target.getwidth(); canvas.translate(mdragx - w / 2, mdragy - h / 2); target.draw(canvas); }
of course, can use standart views purpose irrational. better use surfaceview (or if know opengl glsurfaceview).
Comments
Post a Comment