Intent位图在Non Activity类中返回

时间:2014-04-18 15:46:19

标签: java android android-intent

我正在开发一款应用程序,我需要它能够使用相机 - 拍摄照片并将图像返回到位图中。

  • 应用程序是用cocos2d-android编程的(不再维护,我知道这一点,但我认为这应该可行。至少我希望如此)
  • 下面的代码片段在一个扩展CCLayer(cocos2d元素)的类中,所以我不能使用onActivityForResult()

我在非活动类中有这个,它基于位图

生成拼图块
    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");

相机正常启动但在选择完成后,我将进入启动相机的初始屏幕。

我不知道我做错了什么。

1 个答案:

答案 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