Android-将.gif转换为.png的最佳方式

Android-将.gif转换为.png的最佳方式,android,bitmap,png,gif,Android,Bitmap,Png,Gif,我正在从服务器下载大量的.gif文件,当我试图在画布上绘制它们时,它永远不会起作用。我从GIF中创建了位图,并使用Options类将其设置为不可变,并尝试创建一个新文件并将图像保存为png,但这似乎也不起作用。是否有人碰巧有一个简单的好方法将gif转换成png?到目前为止,我试过: Bitmap b = BitmapFactory.decodeFile(mediaStorageDir.getAbsolutePath() + "/" + cr.getString(cr.getColu

我正在从服务器下载大量的.gif文件,当我试图在画布上绘制它们时,它永远不会起作用。我从GIF中创建了位图,并使用Options类将其设置为不可变,并尝试创建一个新文件并将图像保存为png,但这似乎也不起作用。是否有人碰巧有一个简单的好方法将gif转换成png?到目前为止,我试过:

Bitmap b = BitmapFactory.decodeFile(mediaStorageDir.getAbsolutePath() + "/" +       
cr.getString(cr.getColumnIndex(gh.Zone_ZoneName))+".gif");
                           OutputStream stream = null;

File f = new File(mediaStorageDir.getAbsolutePath() + "/" + 
cr.getString(cr.getColumnIndex(gh.Zone_ZoneName))+".png");

if(f.createNewFile()){
    System.out.println("PNG CREATED "+f.getAbsolutePath());
}else{
System.out.println("PNG NOT CREATED "+f.getAbsolutePath());
}
stream = new FileOutputStream(f.getAbsolutePath());
b.compress(CompressFormat.PNG, 100, stream);
stream.close();

但这似乎不起作用。我甚至从来没有看到system.out.println调用,我知道代码正在运行,因为gif的正上方正在保存

我解决了我的问题。当我试图访问新创建的文件以从中生成png时,该文件上有一个系统锁。当我将调用移到其他位置以使png正常工作时。

LogCat是否显示异常/错误/警告?不,一切正常,但我无法将我从gif创建的位图转换为pngI,也无法在我从gif创建的画布上绘制