Android 有可能这样做吗?从选择图像到拍摄图像
是否可以捕获图像并在imageview上显示,而无需保存在手机上?最好从API级别18开始工作。当前我的代码:Android 有可能这样做吗?从选择图像到拍摄图像,android,android-camera,android-camera-intent,android-camera2,Android,Android Camera,Android Camera Intent,Android Camera2,是否可以捕获图像并在imageview上显示,而无需保存在手机上?最好从API级别18开始工作。当前我的代码: private void ImageSelection() { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(intent, IMAGE_REQUEST
private void ImageSelection()
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == IMAGE_REQUEST && resultCode == RESULT_OK && data != null)
{
Uri FilePath = data.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), FilePath);
mImageView.setImageBitmap(bitmap);
mImageView.setVisibility(View.VISIBLE);
mEditText.setVisibility(View.VISIBLE);
} catch (IOException e) {
e.printStackTrace();
}
}
if (TextUtils.isEmpty(mEditText.getText())){
mEditText.setError("Must!");
}
}
使用照相机应用程序拍照 Android将操作委派给其他应用程序的方式是调用一个意图,该意图描述了您希望完成的操作。这个过程包括三个部分:
static final int REQUEST_IMAGE_CAPTURE = 1;
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
请注意,startActivityForResult()方法受一个调用resolveActivity()的条件保护,该条件返回第一个可以处理该意图的活动组件。执行此检查很重要,因为如果您使用任何应用程序都无法处理的意图调用startActivityForResult(),您的应用程序将崩溃。因此,只要结果不为null,就可以安全地使用intent
获取缩略图
如果拍照这一简单的壮举并不是你的应用程序雄心壮志的顶点,那么你可能想从相机应用程序中获取图像并对其进行处理
Android摄像头应用程序将发送给onActivityResult()的返回意图中的照片编码为extras中“data”键下的小位图。以下代码检索此图像并将其显示在ImageView中
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageView.setImageBitmap(imageBitmap);
}
}
为了得到更好的理解
希望这有帮助。好吧,这是可能的,但您只能收到低缩略图质量的图像。这是你想要的吗?如果是这样的话,看看这个答案:是的,稍后我们可以在qualityHmm上工作,我想我可以上传我的图像,如果我把它改成捕获图像的话。你能帮我上传图片吗?要将图片上传到服务器,你需要启用多部分,然后执行Post请求。请参阅本文,它会从该imageview上载吗?您可以从存储器中获取图像,然后将其作为多部分上载到服务器。试着参考我分享的链接,你会得到更好的理解。如果你想要更多的描述,我建议你发布一个不同的问题