安卓,让edittext随手指移动而改变位置

我是个新手,水平有限,写这个博文,更多是总结自己的问题,可能帮助不到别人什么,还请见谅。

事情是老板要求实在一个能够随手指移动的edittext,网上到处查找,到处实验,最后得出两种可行的方案:

方案1:

在Activity的xml里添加一个FrameLayout,里面还有个LinearLayout,再里面有editext,xml属性如下:

<FrameLayout
        android:id="@+id/edwordsLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >


        <LinearLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="15dp"
            android:orientation="horizontal" >


            <EditText
                android:id="@+id/edmyWords"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="5dp"
                android:background="@drawable/ic_img_text_bg" />
        </LinearLayout>
    </FrameLayout>


Activity的代码里实现onTouchEvent(MotionEvent event)方法,在这里获取手指实时点击的坐标点,然后更新LinearLayout的所在位置:


//让包含edittext的linearlayout随手指的移动而改变位置
container.scrollBy(edtextX - x2, edtextY - y2);

这样就行了。

方案2:

直接自定义一个editext类,在初始化里让这个editext实现OnTouchListener,通过实时监听手指移动的坐标,更新editext所在的位置:

meText.setX(event.getRawX() - editX);
meText.setY(event.getRawY() - meText.getHeight() - editY);


方案1demo地址:

http://download.csdn.net/detail/u014436704/8612517


方案2java类地址:

http://download.csdn.net/detail/u014436704/8612551

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值