我的第一个问题!我有一段代码有问题,它用额外的输出选项开始相机意图,然后在活动结果上试图调整图像的大小。正在发生的情况是,在回调时的resize函数中会引发一个nullpointer异常。
public boolean takePicture( ) {
Log.e(TAG, "takePicture interface function");
String FileUri = Environment.getExternalStorageDirectory() + "/samples/";
File file = new File(FileUri,"picture"+ pictureNumber +".jpg");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
Uri outputFileUri = Uri.fromFile(file);
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
Log.e(TAG, "intent started");
return true;
}
活动结果回调函数:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// handle the camera request returns and handle back button in camera.
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_CANCELED ) {
Toast toast = Toast.makeText(this,"Canceled, no picture taken.", 1000);
toast.show();
return;
}
else if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK ) {
Log.e(TAG, "Camera intent return");
Bitmap scaledphoto = null;
int height = 300;
int width = 300;
Bitmap photo = BitmapFactory.decodeFile( APP_DATA_PATH + "/samples/picture" + pictureNumber + ".jpg" );
Log.e(TAG, "Picture fetched");
scaledphoto = Bitmap.createScaledBitmap(photo, height, width, true);
Log.e(TAG, "Picture scaled");
saveImageToFile(scaledphoto, "picture" + pictureNumber + ".jpg");
Log.e(TAG, "Scaled picture saved");
myWebView.loadUrl("javascript:pictureTaken(\""+ pictureLoc + "\")");
pictureNumber++;
下面是logcat:
06-21 14:59:13.496: E/AndroidRuntime(6130): FATAL EXCEPTION: main
06-21 14:59:13.496: E/AndroidRuntime(6130): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1888, result=-1, data=null} to activity {test.test/test.test.CameraIntentTestActivity}: java.lang.NullPointerException
06-21 14:59:13.496: E/AndroidRuntime(6130): at android.app.ActivityThread.deliverResults(ActivityThread.java:2980)
06-21 14:59:13.496: E/AndroidRuntime(6130): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3023)
06-21 14:59:13.496: E/AndroidRuntime(6130): at android.app.ActivityThread.access$1100(ActivityThread.java:123)
06-21 14:59:13.496: E/AndroidRuntime(6130): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1177)
06-21 14:59:13.496: E/AndroidRuntime(6130): at android.os.Handler.dispatchMessage(Handler.java:99)
06-21 14:59:13.496: E/AndroidRuntime(6130): at android.os.Looper.loop(Looper.java:137)
06-21 14:59:13.496: E/AndroidRuntime(6130): at android.app.ActivityThread.main(ActivityThread.java:4424)
06-21 14:59:13.496: E/AndroidRuntime(6130): at java.lang.reflect.Method.invokeNative(Native Method)
06-21 14:59:13.496: E/AndroidRuntime(6130): at java.lang.reflect.Method.invoke(Method.java:511)
06-21 14:59:13.496: E/AndroidRuntime(6130): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-21 14:59:13.496: E/AndroidRuntime(6130): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-21 14:59:13.496: E/AndroidRuntime(6130): at dalvik.system.NativeStart.main(Native Method)
06-21 14:59:13.496: E/AndroidRuntime(6130): Caused by: java.lang.NullPointerException
06-21 14:59:13.496: E/AndroidRuntime(6130): at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:432)
改变
Bitmap photo = BitmapFactory.decodeFile( APP_DATA_PATH + "/samples/picture" + pictureNumber + ".jpg" );
到
Bitmap photo = (Bitmap) data.getExtras().get("data");
在相机意图返回时获得文件路径的最佳方法是什么。当然,我可以在启动意图之前将文件路径保存到成员变量,但这似乎不好,我应该从OnActivityResult中获得路径。 我已经试过了(从相机意图获取图像路径): 唯一不同的是,我在尝试内部存储pic时使用了INTERNAL_CONTENT_URI。如果我这样做,我会得到一个异常:
我有两个活动(A1,A2)。A1呼叫A2,从A2我呼叫摄像机意图如下 它打开相机,我就可以拍照了。但是问题出现了,一旦我单击save按钮(s3中的勾选按钮),我的onActivityResult就不会被调用,而是A2的onDestroy方法被调用。我在onActivityResult fn中有一些逻辑需要完成。 我在Stackoverflow上读过一些关于这个的帖子,但我无法从中得到有用的输出。我
本文向大家介绍Android实现调用摄像头,包括了Android实现调用摄像头的使用技巧和注意事项,需要的朋友参考一下 应用场景: 在Android开发过程中,有时需要调用手机自身设备的功能,本文侧重摄像头拍照功能的调用。 知识点介绍: 使用权限:调用手机自身设备功能(摄像头拍照功能),应该确保已经在AndroidManifest.xml中正确声明了对摄像头的使用及其它相关的feature 1.
我试图捕捉图像和视频从我的android应用程序与默认相机使用意图。 使用上面的代码,我试图捕获图像,在中,我在处的数据中获得了Null 我尝试用意图传递Uri,但Uri为空。 相机意图无法在URI上写入图像。我需要uri以电子邮件发送图像视频。 错误日志
我正在尝试处理一个小的需求,它为用户提供了一个选项,可以将图像大小调整到给定的百分比。让我们假设75%是选项。这是否意味着我应该将图像大小调整为75%,或将图像分辨率调整为75%? 有什么想法吗? 我想用 位图;调整大小=位图。createScaledBitmap(yourBitmap,(int)(yourBitmap.getWidth()*0.75),(int)(yourBitmap.getHe
有人知道模拟器相机启动时是否有可能打开一些个人照片吗? 我有一个基于图像分析的应用程序,我想当我点击相机的按钮时,相机打开的不是默认的Android emulator运动图像。我希望它打开一些我设置为默认图像的图像。因此,当我选择拍照时,它将只显示该图像,当我拍照时,该图像将保存到gallery,而不是Android默认图像。