拖拽在Android中删除按钮 [英] Drag & Drop Button in Android

查看:72
本文介绍了拖拽在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆