我有大约90个png,我想在我的Android应用程序中将它们显示为动画。我尝试使用动画列表,但该应用程序使用大约120 MB的内存!我搜索了更有效的方法,我找到了一些openGL的解决方案。问题是我不知道如何使用openGL来做到这一点,我不知道关于opengl的任何事情! 有指导吗? 我该怎么做?
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:duration="34" android:drawable="@drawable/a1"/>
<item android:duration="34" android:drawable="@drawable/a2"/>
<item android:duration="34" android:drawable="@drawable/a3"/>
.
.
.
<item android:duration="34" android:drawable="@drawable/a90"/>
<item android:duration="34" android:drawable="@drawable/a91"/>
</animation-list>
我的ImageView:
<ImageView
android:id="@+id/iv_loading_animation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:scaleType="centerInside"
android:background="@drawable/loading_animation"/>
主要活动:
ImageView animationLoaderIv = (ImageView)rootView.findViewById(R.id.iv_loading_animation);
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams)animationLoaderIv.getLayoutParams();
layoutParams.height = width;
layoutParams.width = width;
animationLoaderIv.setLayoutParams(layoutParams);
((AnimationDrawable)animationLoaderIv.getBackground()).start();