gpt4 book ai didi

java - Android 动画列表 - 简单示例抛出 java.lang.OutOfMemoryError

转载 作者:行者123 更新时间:2023-12-01 21:24:39 27 4
gpt4 key购买 nike

Android/Xamarin 中的动画列表有哪些限制?

我尝试了一个包含 10 帧、每个帧小于 200kb 的简单示例,但仍然出现内存不足错误。我也尝试过this library但我收到位图解码错误。

TestActivity.xaml:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/myLayout"
android:clipChildren="false">
<ImageView
android:id="@+id/myAnimation"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:src="@anim/TestAnimation"
android:scaleType="centerInside" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:paddingLeft="10dp"
android:paddingRight="20dp"
android:paddingTop="170dp"
android:paddingBottom="100dp"
android:clipChildren="false"
android:clipToPadding="false">
<ImageButton
android:id="@+id/triggerAnimation"
android:layout_height="20dp"
android:layout_width="60dp"
android:background="@android:color/transparent"
android:adjustViewBounds="false"
android:src="@drawable/myButton"
android:scaleType="fitXY"
android:padding="0dp"/>
</LinearLayout>
</RelativeLayout>

TestAnimation.xml:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/test0000" android:duration="33" />
<item android:drawable="@drawable/test0001" android:duration="33" />
<item android:drawable="@drawable/test0002" android:duration="33" />
<item android:drawable="@drawable/test0003" android:duration="33" />
<item android:drawable="@drawable/test0004" android:duration="33" />
<item android:drawable="@drawable/test0005" android:duration="33" />
<item android:drawable="@drawable/test0006" android:duration="33" />
<item android:drawable="@drawable/test0007" android:duration="33" />
<item android:drawable="@drawable/test0008" android:duration="33" />
<item android:drawable="@drawable/test0009" android:duration="33" />
<item android:drawable="@drawable/test0010" android:duration="33" />

TestActivity.cs(仅显示动画触发代码):

    var imgView = FindViewById<ImageView>(Resource.Id.myAnimation);
AnimationDrawable animation = (AnimationDrawable)imgView.Drawable;
animation.Start();

最佳答案

ANDROID_BITMAP_FORMAT_RGBA_8888 格式的 1280 x 1920 图像:

  • 1280 x 1920 x 10 x(8 位 x 4 (RGBA))= 786,432,000 位 (96MB)。

因此,在内存有限的设备中,您的 10 个可绘制对象至少需要 96 MB。

您可能想考虑将这些图像转换为视频,或对它们进行下采样等...

关于java - Android 动画列表 - 简单示例抛出 java.lang.OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38439507/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com