文化网游-为您提供一个绿色下载空间!
当前位置: 首页 > 资讯

安卓7.0调用系统裁剪,Android 7.0系统下图片裁剪功能实现与优化指南

来源:小编 更新:2025-02-19 04:47:14

用手机看

扫描二维码随时看1.在手机上浏览
2.分享给你的微信好友或朋友圈

你有没有遇到过这种情况?手机里拍了一张美美的照片,想裁剪一下做个头像或者发个朋友圈,结果发现怎么也裁剪不了,急得你抓耳挠腮。别担心,今天就来教你一招,轻松解决安卓7.0调用系统裁剪的问题!

安卓7.0裁剪难题,原来是这样

你知道吗?安卓7.0系统为了提高私有文件的安全性,对file:// Uri类型的Uri做出了限制,这可让不少APP的功能无法正常使用。就拿头像裁剪来说,之前可能只是修改了拍照的Uri,却忘记了裁剪时也要用新的Uri,结果直接使用系统裁剪就出了问题。

解决方法大公开,让你轻松裁剪

那么,如何解决这个问题呢?下面就来教你几招,让你轻松应对安卓7.0裁剪难题!

1. 拍照后保存到外部存储

首先,拍照后要保存到外部存储,这样才能获取到正确的Uri。你可以这样操作:

```java

public void startPhotoZoom(Uri uri) {

File CropPhoto = new File(getExternalCacheDir(), \crop.jpg\);

try {

if (CropPhoto.exists()) CropPhoto.delete();

CropPhoto.createNewFile();

} catch (IOException e) {

e.printStackTrace();

}

cropImageUri = Uri.fromFile(CropPhoto);

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

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

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

}

// 添加这一句表示对目标应用临时授权

2. 使用Intent启动裁剪功能

接下来,使用Intent启动裁剪功能。这里要注意,如果你的设备是华为等品牌,可能需要特殊处理,否则裁剪出来的图片会显示为圆形。

```java

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

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

if (android.os.Build.MODEL.contains(\HUAWEI\)) {

// 华为特殊处理,否则会显示圆

intent.putExtra(\aspectX\, 9998);

intent.putExtra(\aspectY\, 9999);

} else {

intent.putExtra(\aspectX\, 1);

intent.putExtra(\aspectY\, 1);

// outputX outputY 是裁剪图片宽高

intent.putExtra(\outputX\, 200);

intent.putExtra(\outputY\, 200);

startActivityForResult(intent, REQUEST_CROP);

3. 获取裁剪后的图片

在onActivityResult中获取裁剪后的图片。这里要注意,如果你的设备是华为等品牌,可能需要特殊处理,否则裁剪出来的图片会显示为圆形。

```java

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == REQUEST_CROP && resultCode == RESULT_OK) {

Bundle extras = data.getExtras();

if (extras != null) {

Bitmap photo = (Bitmap) extras.get(\data\);

// 这里可以保存裁剪后的图片或者进行其他操作

}

}

注意事项,让你更上一层楼

在使用以上方法时,还有一些注意事项需要你注意:

1. 确保你的APP已经申请了相应的权限,例如访问相机和存储等。

2. 在调用裁剪功能之前,先检查设备是否支持该功能。

3. 如果你的设备是华为等品牌,可能需要特殊处理,否则裁剪出来的图片会显示为圆形。

轻松解决安卓7.0裁剪难题

通过以上方法,相信你已经能够轻松解决安卓7.0调用系统裁剪的问题了。快来试试吧,让你的手机拍照更加得心应手!


玩家评论

此处添加你的第三方评论代码
Copyright © 2012-2024 文化网游 版权所有