在Android中分享GIF

时间:2016-10-28 08:47:09

标签: android gif

我正在开发一款Android应用,我必须实现与其他消息应用共享GIF的功能。

为此我将存储在临时文件中并通过意图传递文件的URL。我的gif存储为drawable。因此,在检索它时,我使用FileOutputStream和Bitmap.Compress。由于这个而不是GIF我得到一个stil图像。

另外,我尝试将Bitmap转换为字节数组而不进行压缩,但在这种情况下我的图像没有显示

我的代码分享gif:

int drawableId = gridItemList.get(position);
Bitmap contentToShare = BitmapFactory.decodeResource(getResources(),   drawableId);                
try {
    File cachePath=new File(getApplicationContext().getFilesDir(),"content");
    cachePath.mkdirs();
    FileOutputStream stream=new FileOutputStream(cachePath+"/anim.gif");
    contentToShare.compress(Bitmap.CompressFormat.PNG, 100, stream);
    stream.close();
    File imagePath = new File(getApplicationContext().getFilesDir(), "content");
    File newFile = new File(imagePath,"anim.gif");
    Uri contentURI=FileProvider.getUriForFile(getApplicationContext(),getPackageName()+".fileprovider",newFile);
    if(contentURI!=null)    {
        Intent shareIntent = new Intent();
        shareIntent.setAction(Intent.ACTION_SEND);
        shareIntent.putExtra(Intent.EXTRA_STREAM, contentURI);
        shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        shareIntent.setType("image/gif");
        startActivity(shareIntent);
    }
}catch (Exception e)    {
    Log.e("Exception",e.toString());
}

PS:分享jpeg和png工作正常。

1 个答案:

答案 0 :(得分:-1)

使用Glide库显示您的GIF

在你的Gradle中:

compile 'com.github.bumptech.glide:glide:3.7.0'

要编写的代码:

String gifUrl = "http://i.kinja-img.com/gawker-media/image/upload/s--B7tUiM5l--/gf2r69yorbdesguga10i.gif";

Glide  
    .with( context )
    .load( gifUrl )
    .into( imageViewGif );