在哪里/如何将图像存储到我的应用程序中? (机器人)

时间:2010-12-16 01:43:03

标签: android

我有一个代码选择器/裁剪器,其代码取自this site

他们在手机的外部存储空间中创建了图像,但我想将其存储在我应用的内部存储空间中,记录过程here

这是我检索临时文件的函数,但是当我尝试使用从此函数返回的文件时,图像不会改变。事实上,看着logcat,似乎resolveUri在我生成的那个文件上的坏位图uri上失败了。当我尝试设置图像URI时发生错误,导致我认为它没有正确保存。这对我来说很奇怪,考虑到网站的原始代码只是在SD卡中创建一个文件,并且代码可以正常读取/写入。所以我想知道问题出在哪里。


@Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
    case PHOTO_PICKED:
      if (resultCode == RESULT_OK) {
        if (data != null) {
          Bundle extras = data.getExtras();
          if (extras != null) {
            ImageView callerImage = (ImageView)findViewById(R.id.contact_image);
            callerImage.setImageURI(Uri.fromFile(getTempFile()));
          }
        }
      }
      break;
    }
  }

private File getTempFile() {
    try {
      FileOutputStream fos = openFileOutput(TEMP_PHOTO_FILE, Context.MODE_WORLD_WRITEABLE);
      fos.close();
      File f = getFileStreamPath(TEMP_PHOTO_FILE);
      return f;
    } catch (FileNotFoundException e) {
      // To be logged later
      return null;
    } catch (IOException e) {
      // To be logged later
      return null;
    }
}

1 个答案:

答案 0 :(得分:0)

没关系,我很傻。当我调用getTempFile时,每次重新创建文件时都是错误的。它应该只在初始调用时创建文件,并在其余时间打开它。