Как на java android сделать анимацию элемента фона кнопки при нажатии на нее?
При событии ACTION_DOWN как сделать чтобы элемент item в файле hamburger.xml поворачивался на 45 градусов?
Запускаю проект на minSdk 21 (Android 5.0.2)
Пробовал програмно добавить в MotionEvent.ACTION_DOWN код задания атрибута fromDegrees
Drawable drawable = getResources().getDrawable(R.drawable.hamburger);
LayerDrawable layerDrawable = (LayerDrawable) drawable;
Drawable layer = layerDrawable.getDrawable(0);
RotateDrawable rotateDrawable = (RotateDrawable) layer;
rotateDrawable.setFromDegrees(45);
но с фоном кнопки ничего не происходит.
MainActivity.java
public class MainActivity extends AppCompatActivity{
private Button buttonHamburger;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonHamburger = findViewById(R.id.buttonHamburger);
View.OnTouchListener onTouchHamburger = new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
//TODO rotate android:id="@+id/first_item"
return true;
case MotionEvent.ACTION_UP:
return true;
}
return false;
}
};
buttonHamburger.setOnTouchListener(onTouchHamburger);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ACACAC"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:padding="10dp">
<Button
android:id="@+id/buttonHamburger"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@drawable/hamburger"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
hamburger.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="0dp"
android:right="0dp"
android:top="2dp"
android:bottom="24dp">
<rotate
android:id="@+id/first_item"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%">
<shape android:shape="rectangle">
<size
android:width="30dp"
android:height="2dp" />
<solid android:color="#B2636363" />
</shape>
</rotate>
</item>
</layer-list>