Android 检查imageview中的图片是否是从照相机或多媒体资料中捕获的

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

我可以通过以下代码从gallery或camera中捕获图像并将其放入imageview中:

1。从多媒体资料或照相机捕获图像:

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)
不会编译,是吗?和=是==?“来自画廊”吗?您不知道用户使用的选择器。