android保存到SD卡

时间:2011-04-03 16:07:32

标签: android image save sd-card

嗨,我有一个小问题

我有这个代码将图像保存到SD卡

public String SDSave( ) { //View arg0
                // TODO Auto-generated method stub
                OutputStream outStream = null;
                File file = new File( extStorageDirectory , AdName + ".PNG");
                try {
                    outStream = new FileOutputStream(file);
                    bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
                    outStream.flush();
                    outStream.close();

                    Toast.makeText(WhereAmI.this, "Saved", Toast.LENGTH_LONG).show();

                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    Toast.makeText(WhereAmI.this, e.toString(), Toast.LENGTH_LONG).show();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    Toast.makeText(WhereAmI.this, e.toString(), Toast.LENGTH_LONG).show();
                }

            }

我从另一个方法中调用它:

String sdSave = SDSave(extStorageDirectory + "/qr11.PNG");

并且显示2个错误,第一个是public String SDSave( )处的方法,它说:

This method must return a result of type String

,第二个是String sdSave = SDSave(extStorageDirectory + "/qr11.PNG");,它说:

The method SDSave() in the type WhereAmI is not applicable for the arguments (String)

请帮忙解决一下......

谢谢

5 个答案:

答案 0 :(得分:1)

您将方法声明为public String,这意味着如果您不希望函数返回任何内容,则必须从函数返回String对象(使用return关键字),使用{ {1}}关键字代替void

第二个错误意味着您使用String作为参数(String)调用SDSave方法的某个地方,而此函数不带参数(SDSave(extStorageDirectory + "/qr11.PNG");)。

我建议您尝试Java tutorialtwo,因为这些规则是Java(实际上是许多编程语言)的基础知识。

答案 1 :(得分:1)

您要求您的方法返回字符串

 public String SDSave()

您需要代码末尾的行:

return "someString"; 

如果您不想返回字符串,请使用:

public void SDSave()

第二个错误,您尝试将String传递给您的方法,但您的方法不接受任何变量。你需要:

public void SDSave(String myInputStringVariable)

是的,这些是Java基础的,所以我会读一下Java和OO,也看看这个:

Top Ten Errors Java Programmers Make

答案 2 :(得分:1)

试试这个: 写在关于用户许可的清单文件中.....

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

希望它会对你有所帮助。

答案 3 :(得分:0)

public void SDSave(String file){
    File f=new File(file);
    ...
}

答案 4 :(得分:0)

嘿你可以使用我在Github repo上共享的示例代码link这个示例包含:

  1. 从网上下载图片。
  2. 您也可以分享此图片。
  3. 您可以将此图像保存在SD卡上。
  4. 图像缓存也在那里