デバイスで人の動きをアニメーション化しようとしています。最終的に1.23Mbになるスプライトシートを作成しました。画像のサイズは 5000 x 1500 ピクセルです。シートには 8 つの行があり、それぞれが独自のアクションです。(歩いて、お辞儀をして、ジャンプして…)。最長のアクションは 32 枚の画像です。したがって、画像は基本的に 32 列 x 8 行です。だから、今私はそれをロードします:
これを行うとすぐに:
private Bitmap bmp;
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.myImage);
エラーが発生します:
スレッド [<1> main] (中断 (例外 OutOfMemoryError))
BitmapFactory.decodeResource(Resources, int, BitmapFactory$Options) 行: 385 BitmapFactory.decodeResource(Resources, int) 行: 404
GameView.(Context) 行: 25 FightActivity. onCreate(Bundle) 行: 13 FightActivity(Activity).performCreate(Bundle) 行: 4465
Instrumentation.callActivityOnCreate(Activity, Bundle) 行: 1049
ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) 行: 1920
ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord , Intent) 行: 1981 ActivityThread.access$600(ActivityThread, ActivityThread$ActivityClientRecord, Intent) 行: 123
ActivityThread$H.handleMessage(Message) 行: 1147
ActivityThread$H(Handler).dispatchMessage(Message) 行: 99 Looper.loop() 行: 137 ActivityThread.main(String[]) 行: 4424
Method.invokeNative(Object, Object[]、Class、Class[]、Class、int、boolean) 行: 利用不可 [ネイティブ メソッド] Method.invoke(Object, Object...) 行: 511 ZygoteInit$MethodAndArgsCaller.run() 行: 784
ZygoteInit. main(String[]) 行: 551 NativeStart.main(String[]) 行: 利用不可 [ネイティブメソッド]
特定のファイルサイズに制限されていますか? 奇妙に思えますか?もしそうなら、1 つの大きなスプライト シートの行ごとに一連のアクション イメージとは対照的に、スプライトを個別の「アクション」イメージに分割する唯一のオプションはありますか?
誰かが初心者を助けてくれることを願っています。