2012-03-03 3 views
2

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

но когда я поворачиваю его действие кнопки не работает правильно, действие от кнопки до сих пор сохранить старое положение кнопки перед тем вращения

может любой, пожалуйста, помогите мне устранить эту

<ImageButton 
     android:id="@+id/last20" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="75dp" 
     android:background="@null" 
     android:src="@drawable/last20_selector" 
     android:onClick="last20OnClick"/> 

super.onCreate(savedInstanceState); 
    setContentView(R.layout.wheel); 

    RelativeLayout layout = (RelativeLayout) findViewById(R.id.wheelLayout); 

    RotateAnimation rotateAnim = new RotateAnimation(0, 45, 
      Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 
      0.5f); 

    rotateAnim.setDuration(1000); 
    rotateAnim.setRepeatCount(0); 
    rotateAnim.setFillAfter(true); 
    layout.startAnimation(rotateAnim); 
} 

public void last20OnClick(View view) { 
     System.out.println("last20OnClick"); 
    } 
+0

u должен предоставить общий код ... –

+0

У вас есть решение? Столкнувшись с той же проблемой. – Beena

+0

Нет, я не нашел решение, и я создаю свой контроль с помощью холста и перестаю использовать абсолютный макет. –

ответ

0

В каком коде вы устанавливаете OnClickListener? Попробуйте поместить слушатель в вас onCreate метода:

findViewById(R.id.last20).setOnClickListener(new OnClickListener() { 

    public abstract void onClick (View v) { 
     last20OnClick(v); 
    } 
}); 

Надеется, что это помогает!

+0

'Однако вместо применения OnClickListener к кнопке в вашей деятельности вы можете назначить метод своей кнопке в макете XML, используя атрибут android: onClick. 'http://developer.android.com/reference/android/widget/Button.html – Selvin

+0

Да, я установил его в файле XML android: onClick –

0

Попробуйте установить атрибуты:

android:fillAfter="false" 
android:fillBefore="false" 

или в Java:

rotateAnim.setFillAfter(false); 
rotateAnim.setFillBefore(false); 

, как предложено в этом question. Это помогло мне. Aslo, чтобы сохранить анимацию, поверните ее с -45 до 0 градусов.

+0

Нет, я не могу этого сделать, потому что мне нужно поддерживать вращение –

+0

RotateAnimation rotateAnim = new RotateAnimation (-45, 0, ...); и вы получили такое же вращение. – Silver

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