AndroidStudio选择及裁剪图片

public static final int NONE = 0;
public static final int PHOTOHRAPH = 1;// 拍照
public static final int PHOTOZOOM = 2; // 缩放
public static final int PHOTORESOULT = 3;// 结果
public static final String PHOTO_ACTION_CROP = "com.android.camera.action.CROP";

public static final String IMAGE_UNSPECIFIED = "image/*";
public static int CropSize = 400;// by default
private File photoSaveFile;


public void TakePhoto(String type, String path, String fName, String size) {
	myRequetPermissionCarmer(type, path, fName, size);
}

private void myRequetPermissionCarmer(String type, String path, String fName, String size) {
    //targetSdkVersion 26 以上,先判断有没有权限
	if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
		Log.e("AriTest", "没有权限开始获取:");
		ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1002);
	}else {
		Log.e("AriTest", "有权限开始拍照:");
		Log.e("AriTest", "TakePhoto:" + type + "/" + path + "/" + fName);
		CropSize = Integer.valueOf(size);// 安卓端不宜经常改,由Unity指定裁剪大小
		photoSavePath = path; //图片地址
		fileName = fName;
		photoSaveFile = new File(getExternalCacheDir(), System.currentTimeMillis() + ".jpg"); //裁剪图片保存地址 

		// 通过传过来的type 在这里判断是打开本地相册还是直接照相
		if (type.equals("takePhoto")) {
			Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
			intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
### 实现自定义图片裁剪功能 为了实现在 Android Studio 中创建自定义视图以支持图片裁剪的功能,可以遵循以下方法: #### 创建布局文件 在 `res/layout` 文件夹下创建一个新的 XML 布局文件,在其中声明一个垂直方向的线性布局容器,并引入特定包路径下的自定义组件 `CropImageView`。此组件负责显示待编辑图像并提供交互界面让用户能够调整裁剪区域。 ```xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- 自定义裁剪控件 --> <com.kevin.cropimageview.view.CropImageView android:id="@+id/civ_crop" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> ``` 上述代码片段展示了如何通过 XML 定义 UI 结构[^1]。 #### 编写 Java 类实现逻辑控制 接下来需要编写对应的 Activity 或者 Fragment 来管理生命周期以及响应用户的操作事件。这部分涉及到初始化自定义 View 组件实例、设置监听器捕捉触摸动作改变选框位置大小等行为。 对于跨页面传输大尺寸位图数据时,则建议采用更高效的方式而非直接序列化整个 Bitmap 对象放入 Intent 额外参数里传送至下一个活动单元。一种常见策略是先保存临时文件到磁盘缓存目录后再传递 URI 地址给目标组件读取重建图形资源[^2]。 #### 测试与调试 最后一步是在模拟环境中验证应用程序能否正常工作。如果遇到无法加载测试素材的情况,可以通过简单手段向设备存储空间内添加样本材料供程序调用。例如可以在 AVD Manager 启动后的虚拟机界面上直接把电脑上的 JPEG/PNG 图片拖放到相册应用图标上来快速填充内容库[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值