千亿之家 - 操作系统光盘下载网站!

当前位置: 首页  >  教程资讯 安卓获取系统图库,解锁手机相册的无限魅力

安卓获取系统图库,解锁手机相册的无限魅力

时间:2024-12-31 来源:网络 人气:

手机里的照片越来越多,是不是有时候想找一张特定的照片却翻遍整个相册?别急,今天就来教你怎么轻松获取安卓系统图库里的宝贝,让你的手机照片管理变得井井有条!

一、打开图库,发现新大陆

首先,你得知道怎么打开系统图库。在安卓手机上,通常会有一个“相册”或者“图库”的图标,点开它,就能看到你的所有照片啦!不过,如果你是安卓4.4以上的用户,可能会发现获取图片的路径有点不一样哦。

二、安卓4.4以上,路径大不同

在安卓4.4及以上版本,系统图库获取图片的路径和以前有点不一样。以前,直接用`uri.getData()`就能拿到图片的路径,但现在不行了。你得根据uri中的id来查询文件路径,然后自己构造新的uri。

举个例子,假设你从图库中选中了一张图片,它的uri是`content://media/external/images/media/12345`。这里的`12345`就是图片的id。接下来,你需要通过ContentResolver查询这张图片的路径。

```java

ContentResolver resolver = getContentResolver();

Uri contentUri = ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 12345);

String[] proj = {MediaStore.Images.Media.DATA};

Cursor cursor = resolver.query(contentUri, proj, null, null, null);

if (cursor != null && cursor.moveToFirst()) {

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

String path = cursor.getString(column_index);

cursor.close();

这样,你就能得到图片的本地路径了。

三、调用系统相机,拍出好照片

有时候,你可能需要直接从系统相机拍照。这也很简单,只需要创建一个Intent,设置相应的action和uri,然后启动它。

```java

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, CAMERA_REQUEST_CODE);

拍照完成后,你可以在`onActivityResult`方法中获取到照片的路径。

四、裁剪图片,打造完美照片

拍完照片后,你可能还想对它进行裁剪。安卓系统提供了裁剪图片的功能,你只需要创建一个Intent,设置裁剪的参数,然后启动它。

```java

Intent intent = new Intent(\com.android.camera.action.CROP\);

intent.setDataAndType(uri, \image/\);

intent.putExtra(\crop\, \true\);

intent.putExtra(\aspectX\, 1);

intent.putExtra(\aspectY\, 1);

intent.putExtra(\outputX\, 150);

intent.putExtra(\outputY\, 150);

startActivityForResult(intent, CROP_REQUEST_CODE);

裁剪完成后,你可以在`onActivityResult`方法中获取到裁剪后的图片。

五、保存图片,让照片永存

拍完照片或者裁剪完成后,你可能需要将图片保存到系统图库中。安卓系统提供了保存图片到图库的方法,你只需要调用相应的API即可。

```java

ContentResolver resolver = getContentResolver();

ContentValues values = new ContentValues();

values.put(MediaStore.Images.Media.DISPLAY_NAME, \new_image.jpg\);

values.put(MediaStore.Images.Media.MIME_TYPE, \image/jpeg\);

Uri uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

OutputStream outputStream = resolver.openOutputStream(uri);

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);

outputStream.close();

这样,你就能将图片保存到系统图库中了。

六、主动刷新图库,让照片立刻出现

有时候,你可能需要让用户立刻看到新保存的照片。这时,你可以主动刷新系统图库。

```java

MediaScannerConnection.scanFile(this, new String[]{path}, new String[]{MediaType.IMAGE_JPEG}, null);

这样,系统就会立刻扫描并更新图库,用户就能看到新保存的照片了。

怎么样,现在你学会怎么获取安卓系统图库里的照片了吗?赶紧试试吧,让你的手机照片管理变得更加轻松愉快!


作者 小编

教程资讯

教程资讯排行

系统教程

主题下载