java 设置截图裁剪区_鸿蒙Java开发模式11:鸿蒙图片裁剪功能的实现

1. 鸿蒙版图片裁剪功能,效果如下:首页图片裁剪区域:裁剪结果:2.Java代码实现如下:packagecom.example.javahm9.slice;importcom.example.javahm9.ResourceTable;importcom.example.javahm9.util.CropImage;importohos.aafwk.ability.AbilitySlice...
摘要由CSDN通过智能技术生成

1. 鸿蒙版图片裁剪功能,效果如下:

首页

6a6f9fa47dea8195bcf6cf8be0701089.png

图片裁剪区域:

a8b4e6bc9c7503e8a487fd50285dd8c0.png

裁剪结果:

9425d3a0efd199101f1cecdcdcf86317.png

2.Java代码实现如下:package com.example.javahm9.slice;

import com.example.javahm9.ResourceTable;

import com.example.javahm9.util.CropImage;

import ohos.aafwk.ability.AbilitySlice;

import ohos.aafwk.content.Intent;

import ohos.agp.colors.RgbColor;

import ohos.agp.components.Button;

import ohos.agp.components.Component;

import ohos.agp.components.Text;

import ohos.agp.components.element.ShapeElement;

public class MainAbilitySlice extends AbilitySlice {

//定义一个图片

Component image;

//定义一个文本

Text text;

@Override

public void onStart(Intent intent) {

super.onStart(intent);

super.setUIContent(ResourceTable.Layout_ability_main);

//获取图片对象对应的component

image = findComponentById(ResourceTable.Id_result_image);

/*

* 如果接收的cropFlag为true

* 处理剪裁后的图片

* 否则跳过

*/

if(intent.getBooleanParam("cropFlag",false)){

handleCrop(intent);

}

/* 自定义--获取文本对象对应的component

* 根据intent里面的cropStatus来显示不同的文本

* 0表示未接收到数据

* 1表示剪裁取消

* 2表示剪裁成功 有数据

*/

text = (Text) findComponentById(ResourceTable.Id_text);

if(intent.getIntParam("cropStatus",0) == 0){

text.setText("欢迎使用");

}else if(intent.getIntParam("cropStatus",0) == 1){

text.setText("剪裁取消");

}else if(intent.getIntParam("cropStatus",0) == 2){

text.setText("剪裁成功");

}

//获取button对象对应的component

Button button = (Button) findComponentById(ResourceTable.Id_button);

// 设置button的属性及背景

ShapeElement background = new ShapeElement();

// background.setRgbColor(new RgbColor(125, 125, 255));

background.setCornerRadius(25);

// button.setBackground(background);

if (button != null) {

// 绑定点击事件

button.setClickedListener(new Component.ClickedListener() {

public void onClick(Component v) {

begincrop();

}

});

}

}

public void begincrop(){

CropImage.activity()

.setContext(this)

.setSource(ResourceTable.Media_a9)

.setBundleName("com.example.javahm9")

.setAbilityName("com.example.javahm9.MainAbility")

.setRequset_code(1234)

.start(super.getAbility(),this);

}

//处理剪裁结果

private void handleCrop(Intent result) {

int resultImg = result.getIntParam("resultImg",0);

int result_code = result.getIntParam("result_code" , 0);

if(resultImg != 0){

CropImage.handleImage(result_code , image);

}

}

@Override

public void onActive() {

super.onActive();

}

@Override

public void onForeground(Intent intent) {

super.onForeground(intent);

}

}

3.裁剪工具类实现package com.example.javahm9.util;

import ohos.aafwk.ability.Ability;

import ohos.aafwk.ability.AbilitySlice;

import ohos.aafwk.content.Intent;

import ohos.agp.components.Component;

import ohos.agp.render.Canvas;

import ohos.agp.render.Paint;

import ohos.agp.render.PixelMapHolder;

import ohos.app.Context;

import ohos.media.image.PixelMap;

import ohos.utils.net.Uri;

/**

* @Author 李欣

* 此类是一个工具类

* 此类是面向于用户的 面向于MainAbilitySlice的

* 此类提供设置一些参数的功能,提供了页面跳转,跳转到CropImageActivity的方法,有一些属性暂时用不到。

*/

public final class CropImage {

//存一个context

private static Context mContext;

//图片资源文件

private static int msourc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值