我在这里有这个代码:
public class pantalla8 extends Activity {
protected static final int CAMERA_REQUEST = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
final Button logout = (Button) findViewById(R.id.boton13);
logout.setOnClickListener(new OnClickListener(){
public void onClick(View arg0){
finish();
}
});
final Button camera = (Button) findViewById(R.id.boton12);
camera.setOnClickListener(new OnClickListener(){
public void onClick(View arg0){
Intent cameraIntent=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
}
}
}
这会调用camara的服务。
有了这个,我可以拍照,保存并回到我的应用程序没有问题。但如果我不想保存图片,否则丢弃它;发生错误,Android强制关闭应用程序。
我的问题是,我的代码中缺少什么来处理该事件?我的意思是,如果用户丢弃图片,应该再次调用相机。
另外,当用户保存图片时;如何将这些照片与我的应用相关联?我想我应该使用SQLite表,但我不知道该怎么做,因为以后这些图片必须发送到服务器。
我会感激任何帮助! 提前谢谢!
答案 0 :(得分:0)
唯一的问题是当用户丢弃捕获的图像时,您没有处理这种情况。当用户丢弃捕获的图像时,将使用onActivityResult()
调用resultCode = RESULT_CANCELED
。以下是处理相机onActivityResult()
的示例。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
/*
* setting images from camera click intent
*/
try {
if (requestCode == CAMERA_REQUEST) {
if (resultCode == RESULT_OK) {
//here you can save the image or do something
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}
} catch(Exception e) {
Toast.makeText(yourActivity.this, "Unable to load image !!", Toast.LENGTH_SHORT).show();
}
}
我希望这会有所帮助。随意讨论。