我试着学习拖放,从那我做了这个demo.Please告诉我这段代码有什么问题?按钮不会随着我的手指tip.Its定位而移动...
public class Home extends Activity implements OnTouchListener {
private final static int START_DRAGGING = 0;
private final static int STOP_DRAGGING = 1;
private Button btn;
private FrameLayout layout;
private int status;
private LayoutParams params;
private ImageView image;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layout = (FrameLayout) findViewById(R.id.LinearLayout01);
// layout.setOnTouchListener(this);
btn = (Button) findViewById(R.id.btn);
btn.setDrawingCacheEnabled(true);
btn.setOnTouchListener(this);
params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
}
@Override
public boolean onTouch(View view, MotionEvent me) {
if (me.getAction() == MotionEvent.ACTION_DOWN) {
status = START_DRAGGING;
//image = new ImageView(this);
//image.setImageBitmap(btn.getDrawingCache());
//layout.addView(btn, params);
btn.setVisibility(View.INVISIBLE);
}
if (me.getAction() == MotionEvent.ACTION_UP) {
status = STOP_DRAGGING;
//btn.setPadding((int) me.getRawX(), (int) me.getRawY(), 0, 0);
btn.setVisibility(View.VISIBLE);
Log.i("Drag", "Stopped Dragging");
} else if (me.getAction() == MotionEvent.ACTION_MOVE) {
if (status == START_DRAGGING) {
btn.setVisibility(View.VISIBLE);
System.out.println("Dragging"+me.getRawX()+","+me.getRawY());
btn.setX(me.getRawX());
btn.setY(me.getRawY());
btn.invalidate();
}
}
return false;
}
}Thanks..Please尽快告诉你...
发布于 2014-02-19 18:34:08
为了让你的任务更简单,在Drag and Drop 11版本中,Android框架增加了API subframework,它很容易实现,也很容易解释。
Android drag and drop sub framework
https://stackoverflow.com/questions/21877596
复制相似问题