movie クラスを使って gif アニメーション ファイルを再生していますが、画面に収まりません。
gifファイルを画面サイズに合わせて拡大または縮小する方法は?
GIF ビューのカスタム ビューを取得し、Movie クラスを使用してアニメーションを再生しました。
movie クラスを使って gif アニメーション ファイルを再生していますが、画面に収まりません。
gifファイルを画面サイズに合わせて拡大または縮小する方法は?
GIF ビューのカスタム ビューを取得し、Movie クラスを使用してアニメーションを再生しました。
このコードでこれを行うことができます:
float scaleWidth = (float) ((screenwidth / (1f*gifwidth)));//add 1f does the trick
float scaleHeight = (float) ((screenheight / (1f*gifheight)));
canvas.scale(scaleWidth, scaleHeight);
mMovie.draw(canvas, 0, 0);//mMovie is my gif picture
キャンバス (@surface ビュー) を使用している場合は、ゲームループでその高さと幅を取得し、その値で背景画像を描画します。そうでない場合は、
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
float tmp = display.getHeight;
これで、tmp にディスプレイの高さの値が含まれます。幅についても同じ推測。これらのプロパティを使用して gif を引き伸ばします。
ただし、この関数は非推奨であり、より良い方法が必要であると言わざるを得ませんが、これは問題なく機能します:)
アニメーション gif の代わりにフレームごとのアニメーションを使用して、同様の最終結果とスケーリングを得ることができます。gif から各フレームを抽出し、個々のフレームを png (または他のサポートされている形式) ファイルとして res/drawable フォルダーに配置する必要があります。アニメーション ドローアブルを作成して使用します。
http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html
アニメーションをスケーリングするには、 これをオンにします。
このメソッドを使用してアニメーションをスケーリングするために使用できるさまざまなscaleTypesがあります。
これが質問に直接答えないことはわかっていますが、望ましい最終結果が得られます。
ここを見てみましょう。GIF を表示/再生する 3 つの異なる方法をカバーする完全なチュートリアル。どうやらそれは簡単なことではなく、Google で未解決の問題レポートがまだあります。幸運を :)