Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从android库中选择照片_Android_Imageview_Image Gallery - Fatal编程技术网

从android库中选择照片

从android库中选择照片,android,imageview,image-gallery,Android,Imageview,Image Gallery,我正在尝试构建一个包含ImageView的应用程序。如果单击该应用程序,将显示图库,以便我可以为ImageView选择图片。 我的Xml非常简单: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_par

我正在尝试构建一个包含ImageView的应用程序。如果单击该应用程序,将显示图库,以便我可以为ImageView选择图片。 我的Xml非常简单:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" 
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:id="@+id/imageView"
    android:layout_gravity="center_horizontal"
    android:clickable="true"/>
<LinearLayout>

你们走的路是对的,只需改变一些事情

这将打开您的图库:

image.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(i, RESULT_LOAD_IMAGE);
        }
    });
下一步实现onActivityResult回调。这也很简单:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RESULT_LOAD_IMAGE && resultCode == Activity.RESULT_OK && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = {MediaStore.Images.Media.DATA};
        Cursor cursor = getActivity().getContentResolver().query(selectedImage, filePathColumn, null, null, null);
        cursor.moveToFirst();
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();
        image.setImageBitmap(BitmapFactory.decodeFile(picturePath));
    }
}

希望这能对你有所帮助:)

你走在正确的道路上,只需改变一些事情

这将打开您的图库:

image.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(i, RESULT_LOAD_IMAGE);
        }
    });
下一步实现onActivityResult回调。这也很简单:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RESULT_LOAD_IMAGE && resultCode == Activity.RESULT_OK && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = {MediaStore.Images.Media.DATA};
        Cursor cursor = getActivity().getContentResolver().query(selectedImage, filePathColumn, null, null, null);
        cursor.moveToFirst();
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();
        image.setImageBitmap(BitmapFactory.decodeFile(picturePath));
    }
}

希望这能对你有所帮助:)

你走在正确的道路上,只需改变一些事情

这将打开您的图库:

image.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(i, RESULT_LOAD_IMAGE);
        }
    });
下一步实现onActivityResult回调。这也很简单:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RESULT_LOAD_IMAGE && resultCode == Activity.RESULT_OK && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = {MediaStore.Images.Media.DATA};
        Cursor cursor = getActivity().getContentResolver().query(selectedImage, filePathColumn, null, null, null);
        cursor.moveToFirst();
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();
        image.setImageBitmap(BitmapFactory.decodeFile(picturePath));
    }
}

希望这能对你有所帮助:)

你走在正确的道路上,只需改变一些事情

这将打开您的图库:

image.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(i, RESULT_LOAD_IMAGE);
        }
    });
下一步实现onActivityResult回调。这也很简单:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RESULT_LOAD_IMAGE && resultCode == Activity.RESULT_OK && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = {MediaStore.Images.Media.DATA};
        Cursor cursor = getActivity().getContentResolver().query(selectedImage, filePathColumn, null, null, null);
        cursor.moveToFirst();
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();
        image.setImageBitmap(BitmapFactory.decodeFile(picturePath));
    }
}

希望这对你有所帮助:)

你可以使用魔法照相库。 您可以使用此库选择图片或拍照,还可以调整大小和更改照片质量:D

1。在gradle中尝试编译

 compile 'com.frosquivel:magicaltakephoto:1.0'
2。您在manifest.xml中需要此权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA"/>
4。如果需要拍照,请使用该方法

magicalTakePhoto.takePhoto("my_photo_name");
5。如果需要在设备中选择图片,请尝试以下方法:

 magicalTakePhoto.selectedPicture("my_header_name");
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        magicalTakePhoto.resultPhoto(requestCode, resultCode, data);
        //example to get photo
        //imageView.setImageBitmap(magicalTakePhoto.getMyPhoto());
    }
6。您需要覆盖活动或片段的activityresult方法,如下所示:

 magicalTakePhoto.selectedPicture("my_header_name");
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        magicalTakePhoto.resultPhoto(requestCode, resultCode, data);
        //example to get photo
        //imageView.setImageBitmap(magicalTakePhoto.getMyPhoto());
    }

注意:只有使用此库,您才能在设备中拍摄和选择图片,这将使用min API 15。

您可以使用Magic take Photo Library。 您可以使用此库选择图片或拍照,还可以调整大小和更改照片质量:D

1。在gradle中尝试编译

 compile 'com.frosquivel:magicaltakephoto:1.0'
2。您在manifest.xml中需要此权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA"/>
4。如果需要拍照,请使用该方法

magicalTakePhoto.takePhoto("my_photo_name");
5。如果需要在设备中选择图片,请尝试以下方法:

 magicalTakePhoto.selectedPicture("my_header_name");
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        magicalTakePhoto.resultPhoto(requestCode, resultCode, data);
        //example to get photo
        //imageView.setImageBitmap(magicalTakePhoto.getMyPhoto());
    }
6。您需要覆盖活动或片段的activityresult方法,如下所示:

 magicalTakePhoto.selectedPicture("my_header_name");
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        magicalTakePhoto.resultPhoto(requestCode, resultCode, data);
        //example to get photo
        //imageView.setImageBitmap(magicalTakePhoto.getMyPhoto());
    }

注意:只有使用此库,您才能在设备中拍摄和选择图片,这将使用min API 15。

您可以使用Magic take Photo Library。 您可以使用此库选择图片或拍照,还可以调整大小和更改照片质量:D

1。在gradle中尝试编译

 compile 'com.frosquivel:magicaltakephoto:1.0'
2。您在manifest.xml中需要此权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA"/>
4。如果需要拍照,请使用该方法

magicalTakePhoto.takePhoto("my_photo_name");
5。如果需要在设备中选择图片,请尝试以下方法:

 magicalTakePhoto.selectedPicture("my_header_name");
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        magicalTakePhoto.resultPhoto(requestCode, resultCode, data);
        //example to get photo
        //imageView.setImageBitmap(magicalTakePhoto.getMyPhoto());
    }
6。您需要覆盖活动或片段的activityresult方法,如下所示:

 magicalTakePhoto.selectedPicture("my_header_name");
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        magicalTakePhoto.resultPhoto(requestCode, resultCode, data);
        //example to get photo
        //imageView.setImageBitmap(magicalTakePhoto.getMyPhoto());
    }

注意:只有使用此库,您才能在设备中拍摄和选择图片,这将使用min API 15。

您可以使用Magic take Photo Library。 您可以使用此库选择图片或拍照,还可以调整大小和更改照片质量:D

1。在gradle中尝试编译

 compile 'com.frosquivel:magicaltakephoto:1.0'
2。您在manifest.xml中需要此权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA"/>
4。如果需要拍照,请使用该方法

magicalTakePhoto.takePhoto("my_photo_name");
5。如果需要在设备中选择图片,请尝试以下方法:

 magicalTakePhoto.selectedPicture("my_header_name");
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        magicalTakePhoto.resultPhoto(requestCode, resultCode, data);
        //example to get photo
        //imageView.setImageBitmap(magicalTakePhoto.getMyPhoto());
    }
6。您需要覆盖活动或片段的activityresult方法,如下所示:

 magicalTakePhoto.selectedPicture("my_header_name");
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        magicalTakePhoto.resultPhoto(requestCode, resultCode, data);
        //example to get photo
        //imageView.setImageBitmap(magicalTakePhoto.getMyPhoto());
    }
注意:只有使用此库,您才能在设备中拍摄和选择图片,这将使用最小API 15