【发布时间】:2017-02-25 17:33:57
【问题描述】:
如何从图库中加载 GIF 文件。因为它可以通过访问drawable或使用web url来放置。但是如何从画廊访问它。不像路径,即 file//folder1//images// file.gif 相反,我需要通过 onclick> 打开图库(显示所有文件,即图像、gif 等)> 选择一个 gif,然后将其打开到我的应用程序(GifImageView)
【问题讨论】:
如何从图库中加载 GIF 文件。因为它可以通过访问drawable或使用web url来放置。但是如何从画廊访问它。不像路径,即 file//folder1//images// file.gif 相反,我需要通过 onclick> 打开图库(显示所有文件,即图像、gif 等)> 选择一个 gif,然后将其打开到我的应用程序(GifImageView)
【问题讨论】:
在您的 build.gradle 文件中: 编译这个依赖。
dependencies {
compile 'com.felipecsl:gifimageview:2.1.0'
}
在您的 Activity 类中:
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gifView = (GifImageView) findViewById(R.id.gifImageView);
gifView.setBytes(bitmapData);
}
@Override
protected void onStart() {
super.onStart();
gifView.startAnimation();
}
@Override
protected void onStop() {
super.onStop();
gifView.stopAnimation();
}
如果您需要对 GIF 帧进行后处理,您可以通过 GifImageView.setOnFrameAvailable() 来完成。您可以在存储库中包含的示例应用程序中看到一个示例。
gifImageView.setOnFrameAvailable(new GifImageView.OnFrameAvailable() {
@Override
public Bitmap onFrameAvailable(Bitmap bitmap) {
return blurFilter.blur(bitmap);
}
});
您还可以重置动画以从头开始重新播放 gifImageView.resetAnimation();或者显示动画的特定帧 gifImageView.gotoFrame(3);
【讨论】: