2012-12-07 43 views
1

我有这样的代码:安卓:拍照并保存到指定文件夹

public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.inventario); 
    Button scatta=(Button) findViewById(R.id.scatta_foto); 
    scatta.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(cameraIntent, 2); 
     } 
    }); 
} 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == 2) { 
     Bitmap photo = (Bitmap) data.getExtras().get("data"); 
     ImageView test = (ImageView) findViewById(R.id.anteprima); 
     test.setImageBitmap(photo); 
     try{ 
      SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss"); 
      String currentDateandTime = sdf.format(new Date()).replace(" ",""); 
      FileOutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory().getAbsolutePath() + "/bao/bao"+currentDateandTime+".jpg"); 
      photo.compress(Bitmap.CompressFormat.JPEG, 90, out); 
     }catch (Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 

我知道它(照片拍摄完成并因为Dropbox的,我敢肯定它的工作),但它不会出现在ImageView和文件管理器中! 我怎样才能把在指定的目录中的照片(/ SD卡/我的应用程序内/)和ImageView的

回答

1

设置你的文件路径:

public final static String APP_PATH_SD_CARD = "/bao"; 

您可以将图像保存为以下几点:

String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + APP_PATH_SD_CARD; 

     try { 
      File dir = new File(fullPath); 
      if (!dir.exists()) { 
       dir.mkdirs(); 
      } 
      SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss"); 
      String currentDateandTime = sdf.format(new Date()).replace(" ",""); 
      OutputStream fOut = null; 
      File file = new File(fullPath, currentDateandTime); 
      file.createNewFile(); 
      fOut = new FileOutputStream(file); 

      // 100 means no compression, the lower you go, the stronger the compression 
      bm.compress(Bitmap.CompressFormat.PNG, 100, fOut); 
      fOut.flush(); 
      fOut.close(); 
     } 

现在,您可以从该路径图像:

ImageView picture = (ImageView) findViewById(R.id.imageView); 
String pathName = Environment.getExternalStorageDirectory().getPath() + "/boa/" + "nameofimage.png"; 
File path = new File(pathName); 
if(path.exists()){ 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    bm = BitmapFactory.decodeFile(pathName, options); 
    picture.setImageBitmap(bm); 
} 
else{ 
    //Set default picture or do nothing. 
} 
+0

不会做任何事情 – Zak

+0

它不会在onActivityResult中输入! 也许这是因为我有标签,我用replacecontentview更改视图(但在此之前)? – Zak

+0

但它回到正确的看法,这是奇怪的 – Zak