【问题标题】:How implement a GIF in my Android app? [duplicate]如何在我的 Android 应用中实现 GIF? [复制]
【发布时间】:2014-03-30 12:28:30
【问题描述】:

嘿,我是 android 编程新手。 我想知道如何在我的 Android 应用中轻松实现 GIF。

我必须做什么?

我试过这个,但我做错了。它不工作。 >>THIS<<

【问题讨论】:

  • 您可以在 web-view 中加载它。
  • 显示你尝试过的目的......
  • 我尝试了链接显示的内容。但我认为那不是漏洞解决方案,因为它不起作用。
  • “不工作”是什么意思?当你尝试它时究竟发生了什么?
  • @aut_silvia,试试我下面的代码,如果你遇到任何问题,请告诉我。

标签: java android animation gif


【解决方案1】:

基本上我给你下面的例子,它从一些网站在线加载图像并在一段时间后改变它。

public class Gif_First extends Activity {

    WebView mWebView;
    int i = 0;
    CountDownTimer mTimer;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.animation);

        mTimer = new CountDownTimer(15000, 1000) {
            private String[] myArray = {
                    "http://i.share.pho.to/09d99399_o.gif",
                    "http://i.share.pho.to/220dd194_o.gif",
                    "http://i.share.pho.to/6f3a5ae4_o.gif",
                    "http://i.share.pho.to/1b264cb7_o.gif",
                    "http://i.share.pho.to/824b1aab_o.gif",
                    "http://i.share.pho.to/c6728fb8_o.gif",
                    "http://i.share.pho.to/5508a2e1_o.gif",
                    "http://i.share.pho.to/aa64f9a9_o.gif",
                    "http://i.share.pho.to/d4619e93_o.gif",
                    "http://i.share.pho.to/2d50de0a_o.gif",
                    "http://i.share.pho.to/23c030eb_o.gif",
                    "http://i.share.pho.to/d6e3ccad_o.gif",
                    "http://i.share.pho.to/eaaeaf88_o.gif",
                    "http://i.share.pho.to/9708dd88_o.gif",
                    "http://i.share.pho.to/7f879974_o.gif",
                    "http://i.share.pho.to/efe8afa3_o.gif",
                    "http://i.share.pho.to/259954ac_o.gif",
                    "http://i.share.pho.to/bdbc28f2_o.gif" };
            int currentIndex = 0;

            public void onTick(long millisUntilFinished) {
            }

            public void onFinish() {
                if (currentIndex < myArray.length) {
                    mWebView.loadUrl(myArray[currentIndex]);
                    currentIndex++;
                } else {
                    currentIndex = 0;
                    if (currentIndex < myArray.length)
                        mWebView.loadUrl(myArray[currentIndex]);
                    currentIndex++;
                    mTimer.start();
                }
                mTimer.start();
            }
            // code comment end
        };

        mTimer.start();
        mWebView = (WebView) findViewById(R.id.webviewActionView);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://i.share.pho.to/49cf97de_o.gif");
        mWebView.setWebViewClient(new WebSliderWebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(mWebView, url);
                //Toast.makeText(getApplicationContext(), "Done!",
                    //  Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onReceivedError(WebView view, int errorCode,
                    String description, String failingUrl) {
                //Toast.makeText(getApplicationContext(),
                    //  "Oh no! " + description, Toast.LENGTH_SHORT).show();
            }
        });

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
            mWebView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    private class WebSliderWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
}

这里是 XML 文件。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/DogView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000"
    android:orientation="vertical" >

    <WebView
        android:id="@+id/webviewActionView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

我认为所有链接都已失效,但您可以在那里上传一些图片并更改链接然后尝试。

【讨论】:

  • 但如果我加载了我的 gif,我没有网站。
  • 你也可以尝试将图片放入assets文件夹,然后给出assets文件夹的路径。
  • 或者如果你有 gif 图片上传到这里share.pho.to 然后使用链接。在我的情况下,我也做了同样的事情,我没有我的网站,所以我在这里上传了它,然后我只是抓住了链接。
猜你喜欢
  • 2013-12-30
  • 1970-01-01
  • 1970-01-01
  • 2017-12-01
  • 1970-01-01
  • 2012-03-04
  • 2011-08-16
  • 2015-10-17
  • 1970-01-01
相关资源
最近更新 更多