I know very late, but for those who are looking for an answer in the future.
Suppose this is your layer-list :
layer_list.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/rotate_drawable"> <rotate android:duration="4000" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="720"> <shape android:innerRadius="20dp" android:shape="ring" android:thickness="4dp" android:useLevel="false"> <size android:width="48dp" android:height="48dp" /> <gradient android:endColor="@android:color/white" android:startColor="#00ffffff" android:type="sweep" android:useLevel="false" /> </shape> </rotate> </item> </layer-list>
So your java code might look like this:
final LayerDrawable layerDrawable = (LayerDrawable) getResources().getDrawable(R.drawable.layer_list); final RotateDrawable rotateDrawable = (RotateDrawable) layerDrawable.findDrawableByLayerId(R.id.rotate_drawable); final ObjectAnimator objectAnimator = ObjectAnimator.ofInt(rotateDrawable, "level", 0, 10000) .setDuration(4000); objectAnimator.setRepeatCount(ObjectAnimator.INFINITE); objectAnimator.setInterpolator(new LinearInterpolator()); objectAnimator.start();
Mir-ismaili
source share