2016-04-08 3 views
2

Я хочу переместить кнопку изображения, которую я использую в своем приложении quadcoptor, но я не могу перемещать кнопку изображения. Я пробовал много вещей, но не двигался!Я хочу переместить кнопку изображения?

Это мой обновленный код 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

ответ

0

Похоже, что вы пытаетесь установить положение ручку, чтобы быть положение сенсорного события. Вместо установки поплавковых переменных

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

Вы должны установить переменные вашей ручки.

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

Даже я не уверен, что это лучший способ перемещения кнопки. Вероятно, вы должны сохранить начальную позицию кнопки, а затем сохранить начало нажатия, и при каждом перемещении касания сдвиньте кнопку одинаково, а затем, когда касание закончится, верните кнопку в исходное положение.

+0

все еще не может перемещать изображение кнопки! Я пробовал много разных кодов, но он не двигается! Он получает событие касания, но кнопка изображения не перемещается! – ASAP

+0

Я никогда не использовал layout_x и layout_y для размещения элемента, возможно, вы можете попробовать установить значение X imknob.setX (event.getX()) или использовать манипуляции с переводом. –

Смежные вопросы