【发布时间】:2013-12-30 04:35:03
【问题描述】:
我正在尝试使用这个 Android Gif 编码器 https://github.com/nbadal/android-gif-encoder/blob/master/GifEncoder.java
我在尝试在我的 Android 应用中实现此功能时遇到错误。
以下错误是:
outStream.write(generateGIF()); 说明 资源路径 位置 类型 未定义类型 new View.OnClickListener(){} Main.java /f/src/net/s/f 第 197 行 Java 问题的 generateGIF() 方法
公共布尔完成(){ 说明 资源路径 位置 类型 返回类型与Activity.finish() AnimatedGifEncoder.java /f/src/net/s/f 第164行Java问题不兼容
public byte[] onClick(View v) { 说明 资源路径 位置 类型 返回类型不兼容 View.OnClickListener.onClick(View) Main.java /f/src/net/s/f 第180行Java问题
我的代码如下:
save.setOnClickListener(new OnClickListener() {
@Override
public byte[] onClick(View v) {
// TODO Auto-generated method stub
ArrayList<Bitmap> bitmaps = adapter.getBitmapArray();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
AnimatedGifEncoder encoder = new AnimatedGifEncoder();
encoder.start(bos);
for (Bitmap bitmap : bitmaps) {
encoder.addFrame(bitmap);
}
encoder.finish();
return bos.toByteArray();
FileOutputStream outStream = null;
try{
outStream = new FileOutputStream("/sdcard/generate_gif/test.gif");
outStream.write(generateGIF());
outStream.close();
}catch(Exception e){
e.printStackTrace();
}
Toast.makeText(Main.this, "Saved.", Toast.LENGTH_SHORT).show();
}
});
/////////////////////////////////////// ///////////////
要使用这个类,这里有一个生成 GIF 字节数组的示例帮助方法。注意这里的 getBitmapArray() 函数是一种一次返回图像适配器中所有位图文件的方法。所以输入是一个适配器中的所有位图文件,输出是一个字节数组,您可以将其写入文件。
public byte[] generateGIF() {
ArrayList<Bitmap> bitmaps = adapter.getBitmapArray();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
AnimatedGifEncoder encoder = new AnimatedGifEncoder();
encoder.start(bos);
for (Bitmap bitmap : bitmaps) {
encoder.addFrame(bitmap);
}
encoder.finish();
return bos.toByteArray();
}
要使用此功能,请执行以下操作,然后您可以将文件保存到 SD 卡中。
FileOutputStream outStream = null;
try{
outStream = new FileOutputStream("/sdcard/generate_gif/test.gif");
outStream.write(generateGIF());
outStream.close();
}catch(Exception e){
e.printStackTrace();
}
【问题讨论】:
-
编译器已经给你答案了。毫无意义的问题。
标签: android animation gif encoder