我想移动图片按钮?

时间:2016-04-08 17:45:48

标签: java android xml image

我想在我的quadcoptor应用程序中移动我正在使用的图像按钮,但是我无法移动图像按钮我尝试了很多东西,但它没有移动!!

这是我的UPDATED java代码 它可以在特定的圆周上移动图像按钮但是当我触摸按钮并将其从中心拖动时,按钮会变得不稳定并闪烁!

 x = event.getX();
                    y = event.getY();

                float dX = x - idx;
                float dY = y - idy;
                double angleInDegrees = Math.atan(dY / dX) * 360 / 3.14;

                idx = x;
                idy = y;

                imknob.setTranslationX((float)(200*(Math.cos(angleInDegrees))));
                imknob.setTranslationY((float)(200*(Math.sin(angleInDegrees))));

我不知道我哪里出错!帮助某人做对了!!

这是XML代码

 <?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout android:screenOrientation="landscape" android:id="@id/rootie" android:layout_width="wrap_content" android:layout_height="wrap_content"
  xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="#000000">
    <ImageButton android:id="@+id/home" android:background="#FF000000" android:visibility="visible" android:clickable="false" android:layout_width="730dp" android:layout_height="473dp" android:src="@drawable/background" android:layout_centerInParent="true"
        android:layout_x="-13dp"
        android:layout_y="-70dp" />
    <ImageView android:id="@id/g_on" android:background="#00000000" android:visibility="visible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/g_on" android:layout_x="504dp" android:layout_y="45dp" />
    <ImageView android:id="@id/g_off" android:background="#00000000" android:visibility="visible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/g_off" android:layout_x="507dp" android:layout_y="45dp" />

  <ImageButton android:id="@id/stk2" android:background="#00000000" android:visibility="visible" android:clickable="false" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/stk2" android:layout_x="422dp" android:layout_y="126dp" />
    <ImageButton android:id="@id/stk1_" android:background="#00000000" android:visibility="visible" android:clickable="false" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/stk1" android:layout_x="163dp" android:layout_y="52dp" />

  <ImageButton android:id="@+id/stk3" android:background="#00000000" android:visibility="invisible" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/stk2" android:layout_x="422dp" android:layout_y="123dp" />

  <ImageView android:id="@id/pwroff" android:background="#00000000" android:visibility="visible" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/signal_" android:layout_x="281dp" android:layout_y="219dp" android:soundEffectsEnabled="false" />
    <ImageView android:id="@id/pwron" android:background="#00000000" android:visibility="invisible" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/signal" android:layout_x="261dp" android:layout_y="187dp" android:soundEffectsEnabled="false" />

  <ImageButton android:id="@+id/back" android:background="#00000000" android:visibility="visible" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/back" android:layout_x="122dp" android:layout_y="11dp" />
    <ImageButton android:id="@id/stk1" android:background="#00000000" android:visibility="visible" android:clickable="false" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/stk1" android:layout_x="165dp" android:layout_y="242dp" />
</AbsoluteLayout>

This is the UI of my quadcoptor app I want to move the red dot knob which acts as a controller

1 个答案:

答案 0 :(得分:0)

看起来您正在尝试将旋钮的位置设置为触摸事件的位置。而不是设置浮动变量

x = event.getX();
y = event.getY(); 

你应该设置旋钮的变量。

imknob.layout_x = event.getX();
imknob.layout_y = event.getY();

即便如此,我也不确定这是移动按钮的最佳方式。您应该存储按钮的起始位置,然后存储按下的开始,并且每次移动触摸均匀地移动按钮,然后当触摸完成时,将按钮移回其起始位置。

相关问题