拖拽在Android中删除按钮 [英] Drag & Drop Button in Android
本文介绍了拖拽在Android中删除按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嗨亲爱的
我想在Android中使用Api7或Api8创建可拖动按钮。
我搜索它但我找不到答案。
如何创建此按钮?
Hi dears
I want to create dragable button in android using Api7 or Api8.
I search for it but I couln't find my answer.
How could I create this button?
推荐答案
myOnTouchListener = new OnTouchListener() {
public boolean onTouch(View v, MotionEvent me){
if (me.getAction() == MotionEvent.ACTION_DOWN){
oldXvalue = me.getX();
oldYvalue = me.getY();
Log.i(myTag, "Action Down " + oldXvalue + "," + oldYvalue);
}else if (me.getAction() == MotionEvent.ACTION_MOVE ){
LayoutParams params = new LayoutParams(v.getWidth(), v.getHeight(),(int)(me.getRawX() - (v.getWidth() / 2)), (int)(me.getRawY() - (v.getHeight())));
v.setLayoutParams(params);
}
return true;
}
};
v是您想要移动的视图,在您的情况下它是您' d用你的按钮替换v。
另请注意,为了使其工作,你必须在我的xml文件中使用AbsoluteLayout作为父视图。
我知道它已被弃用,但似乎更合乎逻辑地使用那个RelativeLayout并尝试动态设置边距以移动视图。
original
首先,在xml文件中使用RelativeLayout:
First of all, use a RelativeLayout in your xml file:
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android">
android:id="@+id/my_relative_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<imageview>
android:id="@+id/image1"
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@drawable/splash0"/>
<imageview>
android:id="@+id/image2"
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@drawable/splash0"
android:layout_x="110dp"
android:layout_y="152dp"/>
</imageview></imageview></relativelayout>
然后改变你的活动,看看我的例子:
Then change your activity, see my example:
public class MyActivity extends Activity implements View.OnTouchListener {
private float oldXvalue;
private float oldYvalue;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView image1 = (ImageView) findViewById(R.id.image1);
ImageView image2 = (ImageView) findViewById(R.id.image2);
image1.setOnTouchListener(this);
image2.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent me) {
if (me.getAction() == MotionEvent.ACTION_DOWN) {
oldXvalue = me.getX();
oldYvalue = me.getY();
Log.i("Omid", "Action Down " + oldXvalue + "," + oldYvalue);
} else if (me.getAction() == MotionEvent.ACTION_MOVE) {
RelativeLayout rl = (RelativeLayout) findViewById(R.id.my_relative_layout);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(v.getWidth(), v.getHeight());
params.leftMargin = (int) (me.getRawX() - (v.getWidth() / 2));
params.topMargin = (int) (me.getRawY() - (v.getHeight()));
v.getHeight(), (int) (me.getRawX() - (v.getWidth() / 2)), (int) (me.getRawY() - (v.getHeight())));
v.setLayoutParams(params);
}
return true;
}
}
我测试了它,效果很好。我希望对你来说没问题: - )
I tested it, it worked well. I hope it'll be fine for your :-)
这篇关于拖拽在Android中删除按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文