¿Cómo hacer que el drawableLeft de un Android Button siga girando?

Necesito crear un botón donde hay un icono en la izquierda y un texto en la derecha. Después de presionar el botón, quiero ver que hay una animación de la imagen giratoria en el lugar del icono izquierdo en el botón.

Sé cómo girar una imagen con ImageView, pero no es útil para mi requisito actual.

Intenté utilizar AnimationDrawable, pero tampoco funcionó, no hay animación, pero solo se muestra el primer archivo png. Es entonces lo mismo que use el fondo o leftDrawable del botón para ejecutar AnimationDrawable. El código es el siguiente:

package com.example.layout; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.widget.Button; public class TestLinearlayoutActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public void onStart() { super.onStart(); Button locationTitleButton = (Button) findViewById(R.id.LocationTitleButton); //locationTitleButton.setBackgroundResource(R.drawable.loading); locationTitleButton.setCompoundDrawablesWithIntrinsicBounds(R.drawable.loading, 0, 0, 0); Drawable[] locationTitleButtonDrawables = locationTitleButton.getCompoundDrawables(); AnimationDrawable animDrawable = (AnimationDrawable) locationTitleButtonDrawables[0]; //AnimationDrawable animDrawable = (AnimationDrawable) locationTitleButton.getBackground(); animDrawable.start(); } } //loading.xml: <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/loc1" android:duration="200" /> <item android:drawable="@drawable/loc2" android:duration="200" /> <item android:drawable="@drawable/loc3" android:duration="200" /> <item android:drawable="@drawable/loc4" android:duration="200" /> </animation-list> // layout file, main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:orientation="horizontal" android:padding="0dp" android:layout_height="wrap_content" android:gravity="fill_horizontal" android:layout_margin="0dp"> <Button android:id="@+id/LocationTitleButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="0dip" android:layout_gravity="center_vertical" android:gravity="center_vertical" android:layout_weight="1" android:ellipsize="end" android:scrollHorizontally="true" android:singleLine="true" android:text="Add location" android:textStyle="bold" /> <Button android:textColor="#FF000000" android:layout_weight="0" android:id="@+id/AddLocationButton" android:text="Search" android:gravity="center_vertical" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="-8dp" /> </LinearLayout> 

3 Solutions collect form web for “¿Cómo hacer que el drawableLeft de un Android Button siga girando?”

Puede intentar utilizar un AnimationDrawable .

También he afrontar este problema y he intentado todas las soluciones anteriores, pero nadie ha trabajado para mí. He encontrado solución aquí . El documento de Android dice que no llame start () en el método onCreate (Bundle) de la actividad llámelo en la función onWindowFocusChanged (boolean). Así que lo hago así:

 @Override public void onWindowFocusChanged(boolean hasFocus){ if(hasFocus){ final AnimationDrawable d=(AnimationDrawable) mBtnView.getCompoundDrawables()[0]; d.start(); } } 

Utilice LinearLayout (orientación horizontal). Tratar que como su botón, dándole un selector de botón extraíble como es el fondo dibujable. Dentro de él, poner un ImageView y un TextView. Utilice OnClickListner en LinearLayout, como si fuera un botón. A continuación, animar el ImageView.

  • Las filas visibles en recyclerview saltan un poco después de girar de retrato a paisaje
  • Recepción y rotación de la intención de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.