我正在WebView
中显示一个gif文件。
在我的网页完成加载之前,此gif是可见的。
我是通过以下方式进行的:
我已将loading.gif
放在asset
文件夹中。
XML:
<WebView
android:id="@+id/webview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_centerHorizontal="true"/>
爪哇:
wv.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
WebView loading = (WebView)findViewById(R.id.webview1);
loading.loadUrl("file:///android_asset/loading.GIF");
loading.setBackgroundColor(Color.TRANSPARENT);
loading.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
WebView loading = (WebView)findViewById(R.id.webview1);
loading.setVisibility(View.INVISIBLE);
}
});
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/frame1" android:duration="50" />
<item android:drawable="@drawable/frame2" android:duration="50" />
<item android:drawable="@drawable/frame3" android:duration="50" />
etc...
</animation-list>
爪哇:
imageView.setBackgroundResource(R.drawable.movie);
AnimationDrawable anim = (AnimationDrawable) imageView.getBackground();
anim.start();
但两种情况下动画都不顺畅。虽然它在第二种方法中更好。我只是想知道是否有任何方法可以在没有gif的情况下实现相同的效果?如果那不可能那么,我想知道gif在所有像素密度下是否具有相同的大小。由于gif文件的维度位于px
而不是dp
。
答案 0 :(得分:0)
这是
的一个例子WebView
使用.gif文件的地址创建html:
<html style="margin: 0;">
<body style="margin: 0;">
<img src="https://..../myimage.gif" style="width: 100%; height: 100%" />
</body>
</html>
将此文件存储到assets目录中:
将此html加载到应用程序的WebView
中:
WebView webView = (WebView)findViewById(R.id.webView);
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/html/webpage_gif.html");
Heres是complete example of two options (using WebView or ImageView) to load an animated gif。