Android 检查imageview中的图片是否是从照相机或多媒体资料中捕获的
我可以通过以下代码从gallery或camera中捕获图像并将其放入imageview中: 1。从多媒体资料或照相机捕获图像:Android 检查imageview中的图片是否是从照相机或多媒体资料中捕获的,android,image,camera,Android,Image,Camera,我可以通过以下代码从gallery或camera中捕获图像并将其放入imageview中: 1。从多媒体资料或照相机捕获图像: private void captureImageInitialization() { final String[] items = new String[] { "Take from camera", "Select from gallery" }; ArrayAdapter<String> adapter = n
private void captureImageInitialization() {
final String[] items = new String[] { "Take from camera",
"Select from gallery" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.select_dialog_item, items);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Image");
builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) { // pick from
// camera
if (item == 0) {
Intent intent = new Intent(
"android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, PICK_FROM_CAMERA);
} else {
// pick from file
/**
* To select an image from existing files, use
* Intent.createChooser to open image chooser. Android will
* automatically display a list of supported applications,
* such as image gallery or file manager.
*/
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Complete action using"), PICK_FROM_FILE);
}
}
});
dialog = builder.create();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK)
return;
switch (requestCode) {
case PICK_FROM_CAMERA:
mImageCaptureUri = data.getData();
imagepath = getPath(mImageCaptureUri);
bitmap = BitmapFactory.decodeFile(imagepath);
mImageView.setImageBitmap(bitmap);
// Log.d("camera ---- > ", "" + data.getExtras().get("data"));
new ProcessUploadAvatar2().execute();
break;
case PICK_FROM_FILE:
/**
* After selecting image from files, save the selected path
*/
mImageCaptureUri = data.getData();
imagepath = getPath(mImageCaptureUri);
bitmap2 = BitmapFactory.decodeFile(imagepath);
mImageView.setImageBitmap(bitmap2);
break;
}
}
现在我的问题是如何检查imageview中的图像是否是由照相机或gallery在onActivityResult()方法之外拍摄的?我尝试实现如下功能:
public void NetAsync() {
if (mImageView.getDrawable() != null) {
if (mImageView = bitmap) {
new NetCheck().execute();
} else if (mImageView = bitmap2) {
new ProcessUploadAvatar2().execute();
}
}
}
您可以通过在onActivityResult()中对请求代码进行一次检查来轻松实现这一点。。。我指的是在调用camera/gallery intent时发送的请求代码。如果您只是想“记住”位图是从相机还是从文件中拾取的,那么只需设置一个标签,如
imageView.setTag()
。但是看看你的代码:对于这两个“选择”,你都有BitmapFactory.decodeFile(imagepath)代码>所以它们都是“来自文件”。这有什么关系?请更好地解释你的目标<代码>如果(mImageView=bitmap)
不会编译,是吗?和=是==?“来自画廊”吗?您不知道用户使用的选择器。