カスタム GIFView クラスを使用して、Android でアニメーション GIF を全画面レイアウトで表示しています。gif は、Android API 8 および 16 を実行している AVD で表示およびアニメーション化されますが、Android 4.0.4 を実行しているデバイスでは表示されません。私のデバイスでは、GIFView がレイアウトに追加されていないようです。タイトルバー用のブランクスクリーンセーブです。関連するコードを含めました。
setContentView(R.layout.fullscreen);
LinearLayout layout = (LinearLayout) findViewById(R.id.fullscreenlayout);
layout.setGravity(Gravity.CENTER);
if (imageType.equals("image/gif")){
GIFView view = new GIFView(this);
layout.addView(view);
view.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
view.setMovie(loadGifFromWeb(imageUrl, imageSize));
view.setOnClickListener(imageListener);
}
else{
ImageView imageView = new ImageView(this);
layout.addView(imageView);
imageView.setImageDrawable(loadImageFromWeb(imageUrl));
imageView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
imageView.setOnClickListener(imageListener);
}
ログキャットは次のとおりです
11-19 23:45:09.934: I/dalvikvm(7087): Wrote stack traces to '/data/anr/traces.txt'
11-19 23:45:10.445: I/dalvikvm(7087): threadid=3: reacting to signal 3
11-19 23:45:10.465: I/dalvikvm(7087): Wrote stack traces to '/data/anr/traces.txt'
11-19 23:45:10.955: I/dalvikvm(7087): threadid=3: reacting to signal 3
11-19 23:45:10.955: I/dalvikvm(7087): Wrote stack traces to '/data/anr/traces.txt'
11-19 23:45:11.276: I/Adreno200-EGLSUB(7087): <ConfigWindowMatch:2078>: Format RGBA_8888.
11-19 23:45:11.286: D/OpenGLRenderer(7087): Flushing caches (mode 0)
ここからGIFViewクラスを使用しました
ご協力いただきありがとうございます。
編集*さらに調査したところ、基本チュートリアルコードに同じ問題があることがわかりました。gif はエミュレータでは正常に再生されますが、デバイスでは再生されません。(T989)