我正在开发一款应用程序,我需要它能够使用相机 - 拍摄照片并将图像返回到位图中。
我在非活动类中有这个,它基于位图
生成拼图块 appcontext = MainActivity.context;
intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this is required to call "Intent()" in a non-activity class.
appcontext.startActivity(intent);;
Bundle extras = intent.getExtras();
Bitmap mybit = (Bitmap) extras.get("data");
相机正常启动但在选择完成后,我将进入启动相机的初始屏幕。
我不知道我做错了什么。
答案 0 :(得分:0)
我无法使用onActivityForResult()
你没有选择。如果您想使用ACTION_IMAGE_CAPTURE
,则需要覆盖onActivityResult()
并在那里处理选定的位图。
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this is required to call "Intent()" in a non-activity class.
需要从非startActivity()
Activity
致电Context
。由于您需要startActivityForResult()
使用ACTION_IMAGE_CAPTURE
,因此需要Activity
。
Bundle extras = intent.getExtras();
Bitmap mybit = (Bitmap) extras.get("data");
您似乎认为startActivity()
是阻止通话。它不是。上面的陈述将立即执行。因此,您将无法在此处使用位图。您需要startActivityForResult()
使用onActivityResult()
和ACTION_IMAGE_CAPTURE
。