我使用以下代码在按下按钮时使用相机拍照。
然而,当我运行代码时,它只会在按下按钮但没有拍照后启动相机应用程序。为什么这不起作用?
我想在按下按钮时拍照并将其存储在可以在图库应用中查看的SD卡上。
public class demo extends Activity
{
Button ButtonClick;
int CAMERA_PIC_REQUEST = 1337;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ButtonClick =(Button) findViewById(R.id.Camera);
ButtonClick.setOnClickListener(new OnClickListener ()
{
@Override
public void onClick(View view)
{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
// request code
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if( requestCode == 1337)
{
// data.getExtras()
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
}
else
{
Toast.makeText(demo.this, "Picture NOt taken", Toast.LENGTH_LONG).show();
}
super.onActivityResult(requestCode, resultCode, data);
}
}
答案 0 :(得分:0)
是的,这是默认行为。有两种方式。
1)启动相机应用程序意图(您正在这样做),然后通过相机应用程序点击图片(如默认相机,点击相机拍照按钮或硬键。)
2)使用Camera类和Surfaceview创建自定义摄像机视图。它可以让你完全控制你想用相机做什么(虽然有限)