首页 > 解决方案 > 如何在 Android 上使用 Glide 共享下载的 GIF

问题描述

我想与 Glide 分享下载的 GIF。但是如果我分享 GIF,它只会发送一个文件,而不是一个 GIF。我不知道如何解决这个问题c,可以请任何人帮助我吗?

这是我的代码:

class ShareTask extends AsyncTask<String, Void, File> {

    private final Context context;
    Uri uri;
    public ShareTask(Context context) {
        this.context = context;
    }

    @Override protected File doInBackground(String... params) {
        String url = params[0]; // should be easy to extend to share multiple images at once
        try {
            // Glide v3
            return Glide
                    .with(context)
                    .load(url)
                    .downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
                    .get() // needs to be called on background thread
                    ;
        } catch (Exception ex) {
            Log.w("SHARE", "Sharing " + uri + " failed", ex);
            return null;
        }
    }
    @Override protected void onPostExecute(File result) {
        if (result == null) { return; }

        uri = getUriForFile(ViewFeedActivity.this, "com.codepath.fileprovider", result);
        runOnUiThread(new Runnable() {

            @Override
            public void run() {
                share(uri); // startActivity probably needs UI thread
            }
        });

    }

    private void share(Uri result) {
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("image/GIF");
        intent.putExtra(Intent.EXTRA_TEXT, "Share");
        intent.putExtra(Intent.EXTRA_STREAM, result);
        context.startActivity(Intent.createChooser(intent, "Share image"));
    }
}

标签: androidsharegifandroid-glide

解决方案


推荐阅读