我正试图从相机中捕捉图像。但它返回null Intent onActivityResult。 这是我的代码
CaptureImageFromCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 7);
}
});
onActivityResult
是
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 7 && resultCode == RESULT_OK) {
try {
if(data.getData() == null) {
bitmap = (Bitmap)data.getExtras().get("data");
} else {
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), data.getData());
}
ImageViewHolder.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
我是Android新手所以请详细解释答案。 在此先感谢..!
答案 0 :(得分:1)
通过传递意图来开始你的工作:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Uri yourCapturedImage = intent.getData();
}
所以在从相机使用中捕获图像后,通过意图获取有关图像的数据:
app.use(express.static('path_to_images)
答案 1 :(得分:0)
确保您已添加相机权限,在清单中写入权限以及交叉验证运行时权限。
使用下面的Intent,并指定捕获图像的写入路径 -
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Uri outputUri = Uri.fromFile("path of your directory");
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri);
startActivityForResult(intent, 7);
答案 2 :(得分:0)
您还可以使用server {
listen 80 default_server;
server_name your-domain;
location /app1 {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:3000;
}
location /app2 {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:4000;
}
}
中的setImageURI()
代替onActivityResult()
首先在android清单中添加摄像头权限。如果您的Android版本大于棒棒糖,那么您需要添加运行时权限See documentations here
setImageBitmap()
然后你的代码将是
<uses-permission android:name="android.permission.CAMERA"/>
然后在CaptureImageFromCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 7);
}
});
setImageUrI()
onActivityResult()
答案 3 :(得分:0)
Uri imageUri = data.getData()
将不再起作用。
首先从bitmap
获得data
,像这样:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
val imageBitmap = data.extras.get("data") as Bitmap
imageView.setImageBitmap(imageBitmap)
}
}
然后保存位图图像..请在此处查找详细信息: