我正在通过默认相机活动(使用)拍摄高分辨率照片intent.put Extras
,并将其保存到 SD 卡中,
代码:
public class CameraActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
Button takepicture ;
ImageView iv ;
TextView tv;
Button show;
String filepath;
Intent i;
Uri mUri;
final static int cameraData = 0;
File folder = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
takepicture = (Button) findViewById(R.id.button1);
iv = (ImageView) findViewById(R.id.imageView1);
tv = (TextView) findViewById(R.id.textView1);
show = (Button) findViewById(R.id.button2);
takepicture.setOnClickListener(this);
show.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.button1:
String sdcardstate = android.os.Environment.getExternalStorageState();
if(sdcardstate.contentEquals(android.os.Environment.MEDIA_MOUNTED)){
filepath = Environment.getExternalStorageDirectory().getPath();
folder = new File(filepath,"wax");
if(!folder.exists()){
try {
folder.createNewFile();
Log.d("folder created", "ya");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
mUri = Uri.fromFile(folder);
Log.d("bk", mUri.toString());
i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mUri);
Log.d("extra", "extra");
startActivityForResult(i,cameraData);
}
break;
case R.id.button2:
File f = new File(filepath,"bmp.png");
Bitmap myBitmap = BitmapFactory.decodeFile(f.getAbsolutePath());
iv.setImageBitmap(myBitmap);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
tv.setText("Result ok");
Log.d("ok", "ok");
Bundle extras = data.getExtras();
Bitmap bmp = (Bitmap) extras.get("data");
}
}
}
相机活动开始,图像被拍摄,但是当我点击保存时,它不会返回并强制关闭。
我已经阅读了很多关于此的主题,了解到必须在相机活动开始之前创建文件,但仍然没有。
请帮忙,我在这个问题上卡了一个星期左右。
Logcat 错误
06-15 16:05:50.205: W/dalvikvm(1780): threadid=10: thread exiting with uncaught exception (group=0x4001d800)
06-15 16:05:50.205: E/AndroidRuntime(1780): FATAL EXCEPTION: GLThread 12
06-15 16:05:50.205: E/AndroidRuntime(1780): java.lang.IllegalArgumentException: No configs match configSpec
06-15 16:05:50.205: E/AndroidRuntime(1780): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:760)
06-15 16:05:50.205: E/AndroidRuntime(1780): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916)
06-15 16:05:50.205: E/AndroidRuntime(1780): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1246)
06-15 16:05:50.205: E/AndroidRuntime(1780): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116)
06-15 16:05:50.294: W/ActivityManager(59): Force finishing activity com.android.camera/.Camera
06-15 16:05:50.444: V/camera(1780): stopPreview