我有这段代码:
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和文件管理器中! 如何将照片放在指定目录(/ sdcard / my-app /)和imageview中
答案 0 :(得分: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.
}