
我有一个TextVIEw,我成功地拖动它.但是我想把它向水平方向移动.我该如何实现它?
谢谢,
我的代码:
public class MyDragShadowBuilder extends VIEw.DragShadowBuilder { private static VIEw vIEw; public MyDragShadowBuilder(VIEw v) { super(v); vIEw = v; } @OverrIDe public voID onProvIDeShadowMetrics(Point size,Point touch) { wIDth = getVIEw().getWIDth(); height = getVIEw().getHeight(); size.set(wIDth,height); touch.set(wIDth / 2,height / 2); } private int wIDth,height; @OverrIDe public voID onDrawShadow(Canvas canvas) { vIEw.draw(canvas); }} 在我的活动中:
tv.setonLongClickListener(new OnLongClickListener() { @OverrIDe public boolean onLongClick(VIEw v) { ClipData data = ClipData.newPlainText("dot","Dot : " + v.toString()); VIEw.DragShadowBuilder myShadow = new MyDragShadowBuilder(v); v.startDrag(data,myShadow,(Object) v,0); return false; } }); 我想模拟一个画廊.我有10000张照片要显示出来.我的画廊可以显示10张照片.我想拖动我的图库的linearLayout水平包含图库的内容,当linearLayout像SlIDingDrawer一样到达窗口的末尾时,更改其内容并显示接下来的10张照片. SlIDingDrawer是一个很好的解决方案,但它有一些局限性.将整个linearLayout设置为其句柄时,无法单击它.为其设置单独的句柄时,无法确定句柄相对于内容的位置.
解决方法 从Bluefalcon的建议开始,我想出了类似的东西:// in onCreate of the containing vIEwdragbutton.setontouchListener(new DragExperimenttouchListener(dragbutton.getX(),dragbutton.getY()));
…
public class DragExperimenttouchListener implements VIEw.OntouchListener { public DragExperimenttouchListener(float initalX,float initialY) { lastX = initalX; lastY = initialY; } boolean isDragging = false; float lastX; float lastY; float deltaX; @OverrIDe public boolean ontouch(VIEw arg0,MotionEvent arg1) { int action = arg1.getAction(); if (action == MotionEvent.ACTION_DOWN && !isDragging) { isDragging = true; deltaX = arg1.getX(); return true; } else if (isDragging) { if (action == MotionEvent.ACTION_MOVE) { arg0.setX(arg0.getX() + arg1.getX() - deltaX); arg0.setY(arg0.getY()); return true; } else if (action == MotionEvent.ACTION_UP) { isDragging = false; lastX = arg1.getX(); lastY = arg1.getY(); return true; } else if (action == MotionEvent.ACTION_CANCEL) { arg0.setX(lastX); arg0.setY(lastY); isDragging = false; return true; } } return false; }} 总结 以上是内存溢出为你收集整理的android – 如何水平拖动视图?全部内容,希望文章能够帮你解决android – 如何水平拖动视图?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)