Androidで、アニメーションがあるgifをImageViewで表示させることはできません。で、アニメーションを含むgifを表示させるには、以下の方法があるみたいです。
で、一番簡単そうなWebViewを使って、gifを表示させたいと思います!WebViewは重たいとか言ってるブログも見かけたので、アプリのスピードを気にする人にはお勧めしません。だけど、超簡単。
Activity内から呼び出しています。また、このActivityで使うレイアウトにidがinsertTargetのLinearLayoutを設置しています。
pathでは、gifが保存されている場所を指定してください。また、拡張子がついてないとgifとして読み込んでくれないみたいです。あと、Android端末内のファイルを指定する場合は、file:///をつけないといけないみたいです。gifがウェブ上のどこかにある場合は、http://でいいのではないかと勝手に思ってます。
- android.graphics.Movieを使う
- gifからBitmapを抜き出して表示させる
- webViewを使って表示する
で、一番簡単そうなWebViewを使って、gifを表示させたいと思います!WebViewは重たいとか言ってるブログも見かけたので、アプリのスピードを気にする人にはお勧めしません。だけど、超簡単。
webviewを拡張したviewクラスを作成
public class GifWebView extends WebView {
public GifWebView(Context context, String path) {
super(context);
loadUrl(path);
}
}これだけ!あとは、GifWebViewを作成するときに、表示したいgifのパスを渡してやればいいだけ!きっとだいたいこんな感じ
LinearLayout target = (LinearLayout)findViewById(R.id.insertTarget); //.gifが無いと表示してくれないみたいです String path = "somewhere.gif"; //端末内のファイルを読み込む場合は、file:///をつけないといけないみたい GifWebView gif = new GifWebView(this, "file:///" + path); //gifをインサート target.addView(gif);
Activity内から呼び出しています。また、このActivityで使うレイアウトにidがinsertTargetのLinearLayoutを設置しています。
pathでは、gifが保存されている場所を指定してください。また、拡張子がついてないとgifとして読み込んでくれないみたいです。あと、Android端末内のファイルを指定する場合は、file:///をつけないといけないみたいです。gifがウェブ上のどこかにある場合は、http://でいいのではないかと勝手に思ってます。
