gpt4 book ai didi

Android拖放按钮

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:22:40 25 4
gpt4 key购买 nike

我在 android 中工作,我正在使用一个按钮。现在我想拖放这个按钮。

这是我的 main.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_first"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="drag me"
/>
</LinearLayout>

这是我在鼠标拖动时移动此按钮的代码:-

public class DragdropActivity extends Activity implements OnTouchListener {

private final static int START_DRAGGING = 0;
private final static int STOP_DRAGGING = 1;

private Button btn;

private int status;

private ImageView image;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

btn = (Button) findViewById(R.id.btn);
btn.setDrawingCacheEnabled(true);
btn.setOnTouchListener(this);

}

@Override
public boolean onTouch(View view, MotionEvent me) {
if (me.getAction() == MotionEvent.ACTION_DOWN) {
status = START_DRAGGING;


}
if (me.getAction() == MotionEvent.ACTION_UP) {
status = STOP_DRAGGING;
Log.i("Drag", "Stopped Dragging");
} else if (me.getAction() == MotionEvent.ACTION_MOVE) {
if (status == START_DRAGGING) {
System.out.println("Dragging");
Log.v("***Drag and drop **",
"me.getRawX and Y = " + me.getRawX() + " "
+ me.getRawY());
Log.v("***Drag and drop **",
"image position = " + image.getLeft() + " "
+ image.getRight());
btn.setPadding((int) me.getRawX(), (int) me.getRawY(), 0,0); //this is not working fine.


btn.invalidate();
}
}
return false;
}

我认为 btn.setPadding() 没有正常工作,请建议我应该怎么做才能使按钮轻松移动到鼠标或手势触摸的位置?

最佳答案

我这样解决了我的问题。

    @Override
public boolean onTouch(View view, MotionEvent me) {
if (me.getAction() == MotionEvent.ACTION_DOWN) {
status = START_DRAGGING;


}
if (me.getAction() == MotionEvent.ACTION_UP) {
status = STOP_DRAGGING;
Log.i("Drag", "Stopped Dragging");
} else if (me.getAction() == MotionEvent.ACTION_MOVE) {
if (status == START_DRAGGING) {
System.out.println("Dragging");

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
50, 50);
layoutParams.setMargins((int) me.getRawX() - 25,
(int) me.getRawY() - 50, 0, 0);
layout.removeView(btn);
layout.addView(btn, layoutParams);

btn.invalidate();
}
}
return false;
}

现在它工作正常。

关于Android拖放按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9663404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com