我只需要将相机放在我主要活动的三个片段之一中,如([f] - [f] - [C]),其中()是我的主要活动,[]是片段, C是相机,f只是一个片段(它们是全屏可切换的)。我需要为它创建一个完整的相机(编码等),或者可以调用Android本机相机应用程序,意图是一个想法?
答案 0 :(得分:1)
我需要为它创建一个完整的相机(编码等)
是的,无论您是自己编写还是使用库中的文件。
或者可以调用Android本机相机应用程序,意图是一个想法?
不,您无法在应用的片段中嵌入第三方应用。
答案 1 :(得分:0)
您可以使用Intent启动camara,它将启动camara默认应用程序。只需要小心检测何时显示“C”片段,此处:How to determine when Fragment becomes visible in ViewPager
如果你不这样做,android会在显示片段之前预先缓存片段,你的意图将会触发。
关于您的活动使用:
@Override public void onResume() {
super.onResume();
if(viewPager.getCurrentItem() == 2){
//Your code here. Executed when fragment is seen by user.
// create Intent to take a picture and return control to the calling application
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}
}
使用意图选项查看相机启动:http://developer.android.com/guide/topics/media/camera.html#intent-image
答案 2 :(得分:0)
如果您需要拍照,可以使用意图来启动系统相机应用。这样做会使代码变得更容易,但是您无法显示实时预览,因为您实际上是通过该意图对相机应用程序进行控制。
手动处理整个相机生命周期可让您控制预览并在应用中实时显示。此外,如果您需要在您的应用中进行实时预览,这是一种可行的方式,只需使用Intent
即可完成。
您可能会发现GitHub上的UltimateAndroidCameraGuide对您的问题非常有帮助,尤其是该回购邮件中的SimpleCameraIntentFragment和NativeCameraFragment文件。