精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

鴻蒙HarmonyOS三方件開發(fā)指南-cropper圖片裁剪

開發(fā) OpenHarmony
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)https://harmonyos.51cto.com

[[383862]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

1. cropper組件功能介紹

1.1. 功能介紹:

cropper組件是一種圖像裁剪工具,在圖像上顯示一個可調(diào)整大小的裁剪窗口。

1.2. 模擬器上運行效果:

2. cropper使用方法

2.1. 新建工程,增加組件Har包依賴

在應(yīng)用模塊中添加HAR,只需要將cropperlib-debug.har復(fù)制到entry\libs目錄下即可(由于build.gradle中已經(jīng)依賴的libs目錄下的*.har,因此不需要再做修改)。

2.2. 修改主頁面的布局文件

修改主頁面的布局文件ability_main.xml,增加com.crop.cropperlib.CropImage組件。

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <DirectionalLayout 
  3.     xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  4.     ohos:height="match_parent" 
  5.     ohos:width="match_parent" 
  6.     ohos:orientation="vertical" 
  7.     ohos:scrollbar_fading_delay="0"
  8.     <com.crop.cropperlib.CropImage 
  9.         ohos:id="$+id:cropImage" 
  10.         ohos:width="match_content" 
  11.         ohos:height="match_content" 
  12.         ohos:layout_alignment="center" 
  13.         ohos:top_margin="20vp" 
  14.         ohos:image_src="$media:mantis.jpg" 
  15.         /> 
  16.     <Button 
  17.         ohos:id="$+id:cropButton" 
  18.         ohos:width="match_content" 
  19.         ohos:height="match_content" 
  20.         ohos:text="crop image" 
  21.         ohos:text_size="19fp" 
  22.         ohos:text_color="#FFFFFF" 
  23.         ohos:top_padding="8vp" 
  24.         ohos:bottom_padding="8vp" 
  25.         ohos:right_padding="70vp" 
  26.         ohos:left_padding="70vp" 
  27.         ohos:background_element="$graphic:background_button" 
  28.         ohos:top_margin="20vp" 
  29.         ohos:layout_alignment="center"/> 
  30.     <Image 
  31.         ohos:id="$+id:image" 
  32.         ohos:width="match_content" 
  33.         ohos:height="match_content" 
  34.         ohos:layout_alignment="horizontal_center" 
  35.         ohos:top_margin="20vp" 
  36.         ohos:image_src="$media:black.jpg"/> 
  37. </DirectionalLayout> 

2.3. 修改MainAbilitySlince的UI加載代碼

MainAbilitySlince類的onStart方法。

  1. @Override 
  2. public void onStart(Intent intent) { 
  3.     super.onStart(intent); 
  4.     super.setUIContent(ResourceTable.Layout_ability_main); 
  5.     Button cropButton = (Button) findComponentById(ResourceTable.Id_cropButton); 
  6.     cropButton.setClickedListener(new Component.ClickedListener() { 
  7.         @Override 
  8.         public void onClick(Component component) { 
  9.             Image image = (Image) findComponentById(ResourceTable.Id_image); 
  10.             CropImage cropImage = (CropImage) findComponentById(ResourceTable.Id_cropImage); 
  11.             PixelMap pixelMap = cropImage.getCroppedImage(); 
  12.             image.setPixelMap(pixelMap); 
  13.         } 
  14.     }); 

3. cropper組件開發(fā)實現(xiàn)

3.1. 新建一個Module

新建一個Module,類型選擇HarmonyOS Library,模塊名為library。

3.2. 新建一個CropImage類

新建一個CropImage類,繼承自Image類,實現(xiàn)Component.TouchEventListener, Component.DrawTask, Component.LayoutRefreshedListener接口,代碼如下:

(1)用于初始化時設(shè)置裁剪窗口參數(shù):

  1. @Override 
  2. public void onRefreshed(Component component) { 
  3.     initCropWindow(); 

(2)用于繪制裁剪窗口:

  1. @Override 
  2. public void onDraw(Component component, Canvas canvas) { 
  3.     drawDarkenedSurroundingArea(canvas); 
  4.     drawGuidelines(canvas); 
  5.     drawBorder(canvas); 
  6.   

(3)設(shè)置監(jiān)聽觸摸事件,用于修改裁剪窗口:

  1. @Override 
  2. public boolean onTouchEvent(Component component, TouchEvent touchEvent) { 
  3.     switch (touchEvent.getAction()) { 
  4.         case TouchEvent.PRIMARY_POINT_DOWN: 
  5.             MmiPoint point1 = touchEvent.getPointerPosition(touchEvent.getIndex()); 
  6.             onActionDown(point1.getX() - topLeftX, point1.getY() - topLeftY); 
  7.             invalidate(); 
  8.             return true
  9.         case TouchEvent.PRIMARY_POINT_UP: 
  10.         case TouchEvent.CANCEL: 
  11.             onActionUp(); 
  12.             invalidate(); 
  13.             return true
  14.         case TouchEvent.POINT_MOVE: 
  15.             MmiPoint point2 = touchEvent.getPointerPosition(touchEvent.getIndex()); 
  16.             onActionMove(point2.getX() - topLeftX, point2.getY() - topLeftY); 
  17.             invalidate(); 
  18.             return true
  19.         default
  20.             return false
  21.     } 

(4)根據(jù)裁剪窗口獲取裁剪后的圖像

  1. public PixelMap getCroppedImage() { 
  2.     float scaleX = getScaleX(); 
  3.     float scaleY = getScaleY(); 
  4.     float transX = getTranslationX(); 
  5.     float transY = getTranslationY(); 
  6.     float pixelMapLeft = (transX < 0) ? Math.abs(transX) : 0; 
  7.     float pixelMapTop = (transY < 0) ? Math.abs(transY) : 0; 
  8.     float cropX = (pixelMapLeft + Frame.LEFT.getCoordinate()) / scaleX; 
  9.     float cropY = (pixelMapTop + Frame.TOP.getCoordinate()) / scaleY; 
  10.     PixelMap originalPixelMap = this.getPixelMap(); 
  11.     Size size = originalPixelMap.getImageInfo().size
  12.     float hideX = 0f; 
  13.     if (size.width > getWidth()) { 
  14.         hideX = (size.width - getWidth()) / 2f; 
  15.     } 
  16.     float hideY = 0f; 
  17.     if (size.height > getHeight()) { 
  18.         hideY = (size.height - getHeight()) / 2f; 
  19.     } 
  20.     float cropWidth = Math.min(Frame.getWidth() / scaleX, size.width - cropX); 
  21.     float cropHeight = Math.min(Frame.getHeight() / scaleY, size.height - cropY); 
  22.     Rect cropRect = new Rect((int)(cropX + hideX), (int)(cropY + hideY),(int)cropWidth, (int)cropHeight); 
  23.     PixelMap.InitializationOptions options = new PixelMap.InitializationOptions(); 
  24.     options.size = new Size(cropRect.width, cropRect.height); 
  25.     return PixelMap.create(originalPixelMap, cropRect, options); 

3.3. 編譯HAR包

利用Gradle可以將HarmonyOS Library庫模塊構(gòu)建為HAR包,構(gòu)建HAR包的方法如下:

在Gradle構(gòu)建任務(wù)中,雙擊PackageDebugHar或PackageReleaseHar任務(wù),構(gòu)建Debug類型或Release類型的HAR。

待構(gòu)建任務(wù)完成后,可以在cropperlib > bulid > outputs > har目錄中,獲取生成的HAR包。

項目源代碼地址:https://github.com/isoftstone-dev/cropper

歡迎交流:HWIS-HOS@isoftstone.com

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-03-01 09:48:24

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-02-24 15:22:47

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-02-04 13:06:38

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-04-16 09:28:18

鴻蒙HarmonyOS應(yīng)用

2021-01-13 09:40:31

鴻蒙HarmonyOS開發(fā)

2021-02-04 09:45:19

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-06-28 14:48:03

鴻蒙HarmonyOS應(yīng)用

2021-01-18 09:52:20

鴻蒙HarmonyOS開發(fā)

2021-01-21 13:21:18

鴻蒙HarmonyOSPhotoview組件

2021-01-20 09:54:56

鴻蒙HarmonyOS開發(fā)

2021-01-12 12:04:40

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-03-01 14:01:41

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-01-22 17:33:03

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-03-31 09:50:25

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-05-12 15:17:39

鴻蒙HarmonyOS應(yīng)用

2021-04-12 09:36:54

鴻蒙HarmonyOS應(yīng)用

2021-03-19 17:42:01

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-04-20 09:42:20

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-03-03 09:42:26

鴻蒙HarmonyOS圖片裁剪

2021-04-08 14:57:52

鴻蒙HarmonyOS應(yīng)用
點贊
收藏

51CTO技術(shù)棧公眾號

一级网站在线观看| 日本精品一区二区三区高清 久久| 登山的目的在线| 亚洲精品一二三**| 亚洲国产视频一区| 日本高清久久一区二区三区| 国产精品久久综合青草亚洲AV| 亚洲综合色站| 亚洲另类xxxx| 欧美又黄又嫩大片a级| 伊人网在线播放| 国产精品久久久久久久久快鸭| 成人免费视频观看视频| 免费黄色一级大片| 亚洲国产影院| 最近免费中文字幕视频2019| 婷婷五月精品中文字幕| 天天综合在线观看| 欧美性猛交xxxx免费看| 9色视频在线观看| 免费资源在线观看| 国产成人激情av| 国产精品久久久久久久电影| 精品深夜av无码一区二区老年| 日韩成人精品一区二区| 亚洲国产精品小视频| 两性午夜免费视频| 国产精品videossex撒尿| 亚洲成人av电影| 超碰在线免费观看97| 久久精品a一级国产免视看成人 | 网红女主播少妇精品视频| 欧美麻豆精品久久久久久| 日韩中文字幕组| 欧产日产国产精品视频| 亚洲一级二级在线| 干日本少妇视频| 麻豆tv在线| 国产精品每日更新| 天堂一区二区三区| 黄色的视频在线免费观看| 99久久婷婷国产综合精品| 亚洲中国色老太| 国产精品人妻一区二区三区| 美女视频免费一区| 国产精品视频免费在线| 久久精品99北条麻妃| 久久在线精品| 国产成人综合一区二区三区| 天堂а√在线中文在线新版 | av手机免费看| 激情综合五月婷婷| 国产在线观看一区二区三区 | 视频一区视频二区中文字幕| 2019亚洲日韩新视频| 日本网站在线播放| 99精品国产福利在线观看免费| 久久久久久久国产精品视频| 欧美精品一区二区成人| 欧美日韩国产亚洲一区| 欧美日韩福利电影| 久草精品视频在线观看| 日韩亚洲在线| 奇米成人av国产一区二区三区| 国产又粗又爽视频| 视频一区欧美精品| 国产精品免费观看在线| 91欧美日韩麻豆精品| 国内久久精品视频| www久久99| 秋霞欧美在线观看| 亚洲一区二区三区免费| 在线不卡免费欧美| 亚洲综合20p| 在线精品国产亚洲| 日韩久久免费电影| 老熟妇一区二区| 国产精品91一区二区三区| 久久大大胆人体| 国产一级特黄aaa大片| 亚洲在线免费| 国产精品色视频| 精品毛片在线观看| 91美女在线视频| 亚洲精品一区二区三区樱花| h网站久久久| 亚洲va中文字幕| 免费黄色一级网站| 成人在线日韩| 国产丝袜精品第一页| 美国美女黄色片| 国产一区二区三区自拍| 国产成人涩涩涩视频在线观看| 伊人网站在线观看| 成人黄色网址在线观看| 日韩高清dvd| 伊人222成人综合网| 欧美性xxxxxxx| 97超碰成人在线| 欧美色图婷婷| 久久精品免费播放| 免费在线观看黄网站| 久久精品国产精品亚洲精品| 国产乱码精品一区二区三区中文| 大地资源中文在线观看免费版| 亚洲婷婷综合色高清在线| 日本丰满少妇xxxx| 亚洲人成网站在线在线观看| 亚洲国产一区自拍| 永久免费看片视频教学| 国产亚洲毛片| 2019国产精品视频| 福利在线午夜| 午夜精品视频在线观看| 亚洲第一色av| 国产日产精品_国产精品毛片| 久久久www成人免费精品| 国产又大又粗又爽| 成人丝袜18视频在线观看| 日本一区二区久久精品| 2001个疯子在线观看| 欧美日韩成人一区二区| 西西444www无码大胆| 国内精品99| 92国产精品久久久久首页| 福利小视频在线观看| 欧美日韩国内自拍| 无码人妻一区二区三区精品视频 | 亚洲综合网中心| www.日韩| 日韩精品免费在线观看| 免费一级全黄少妇性色生活片| 久久精品久久综合| 日韩欧美一区二区在线观看| 欧美13videosex性极品| 亚洲白拍色综合图区| 2018天天弄| 国精品**一区二区三区在线蜜桃| 相泽南亚洲一区二区在线播放 | 国产精品一区二区婷婷| 欧美视频在线观看免费网址| 国产高潮视频在线观看| 欧美成人嫩草网站| 91在线视频九色| 国产区在线观看| 69p69国产精品| 又嫩又硬又黄又爽的视频| 丝袜诱惑制服诱惑色一区在线观看 | 国产美女主播视频一区| 亚洲视频在线观看日本a| 亚洲电影有码| 国产一区二区三区久久精品| 秋霞av一区二区三区| 久久综合九色综合97婷婷| 黄色av网址在线播放| 色婷婷精品视频| 日本午夜在线亚洲.国产| 欧美色视频免费| 色婷婷国产精品| 久久精品—区二区三区舞蹈| 久久久成人网| 色女人综合av| 色噜噜成人av在线| 久久综合久中文字幕青草| 国产哺乳奶水91在线播放| 亚洲精品va在线观看| 性xxxxxxxxx| 亚洲精品色图| 精品视频高清无人区区二区三区| 香蕉伊大人中文在线观看| 亚洲欧美www| 在线观看毛片视频| 亚洲欧美视频在线观看视频| 亚洲AV成人精品| 99亚洲伊人久久精品影院红桃| 九九九久久久| 粉嫩91精品久久久久久久99蜜桃| 色七七影院综合| 精品国产18久久久久久| 午夜电影一区二区三区| 欧美 日韩 国产 成人 在线观看| 美国欧美日韩国产在线播放| av中文字幕av| 欧美一性一交| 国产精品永久在线| 精品精品导航| 精品亚洲一区二区| 国产孕妇孕交大片孕| 亚洲狠狠爱一区二区三区| caopeng视频| 国产精品一区二区久久不卡| 777久久久精品一区二区三区| 日韩激情免费| 国产精品一码二码三码在线| 成人网ww555视频免费看| 欧美日韩国产va另类| 激情小视频在线观看| 日韩一区二区三区视频在线观看| 天天干天天干天天| 亚洲欧美另类图片小说| 欧美丰满少妇人妻精品| 韩国av一区二区三区四区 | 91麻豆精品成人一区二区| 成人免费视频caoporn| 嫩草影院国产精品| 激情久久一区| 91成人在线视频观看| 色棕色天天综合网| αv一区二区三区| 国产综合色激情| 欧美亚洲日本黄色| 羞羞的网站在线观看| 一区二区三区回区在观看免费视频| 精品久久久免费视频| 欧美日韩日本视频| 久久久久久91亚洲精品中文字幕| 亚洲精品一二三区| 精品日韩在线视频| 久久蜜桃一区二区| fc2成人免费视频| 国产精品资源站在线| 亚洲精品久久久中文字幕| 国产亚洲福利| 久久久久久久午夜| 欧美日韩国产色综合一二三四| 综合久久国产| 青青草原综合久久大伊人精品| 久久国产精品免费一区| 国产精品qvod| 亚洲xxx自由成熟| 国产一区二区三区视频在线| 国产精品久久久精品| 北岛玲heyzo一区二区| 91av在线免费观看视频| av中文资源在线资源免费观看| 精品视频9999| 中文在线字幕免费观看| 久久人人爽亚洲精品天堂| 91在线高清| 色小说视频一区| 91caoporm在线视频| 在线观看久久久久久| 成年人视频在线观看免费| 亚洲人av在线影院| 男人的天堂在线免费视频| 精品一区二区三区电影| 青青草在线视频免费观看| 日韩国产在线看| 日韩黄色影片| 亚洲人成电影在线| 久草福利在线| 色视频www在线播放国产成人| 最近高清中文在线字幕在线观看| 夜夜嗨av一区二区三区四区| 爱久久·www| 日韩中文字幕精品| 巨大荫蒂视频欧美另类大| 日韩在线观看免费高清完整版| 免费黄色网页在线观看| 久久亚洲国产精品成人av秋霞| 99久久精品免费观看国产| 欧美成人午夜激情视频| 青草视频在线免费直播| 久久久视频在线| 天堂中文在线播放| 国产精品jizz在线观看麻豆| 国产精品亚洲成在人线| 91精品久久久久久久久青青| 95精品视频| 国产福利不卡| 欧美午夜寂寞| 亚洲午夜在线观看| 欧美日韩日本国产亚洲在线 | 黑人精品欧美一区二区蜜桃| www.偷拍.com| 91在线视频播放| 欧洲美熟女乱又伦| 亚洲欧美日韩人成在线播放| 久久婷婷国产麻豆91| 欧美视频精品一区| 亚洲无码精品在线播放| 日韩女优av电影在线观看| 四虎在线免费看| 中文字幕亚洲精品| 日韩三级免费| 国产精品成人在线| 国产一区二区三区精品在线观看| 久久久久无码国产精品一区| 青青草成人影院| 久久成人福利视频| 蜜臀av国产精品久久久久| 在线播放第一页| 久久久.com| 麻豆国产尤物av尤物在线观看| 色综合一区二区三区| 国产欧美久久久精品免费| 日韩精品中文字幕有码专区| 国产二区三区在线| 欧美性在线观看| 日韩成人精品| 日本视频一区二区不卡| 影音先锋久久资源网| 精品亚洲一区二区三区四区| www.av精品| 神马午夜精品91| 日本乱人伦一区| 国模人体一区二区 | 高潮在线视频| 成人乱色短篇合集| 国产精品一线天粉嫩av| 亚洲国产精品无码av| 激情五月婷婷综合网| 免费看污黄网站在线观看| ㊣最新国产の精品bt伙计久久| 免费看一级视频| 精品久久久久香蕉网| 免费大片在线观看www| 青青草原成人在线视频| 亚洲一区二区三区中文字幕在线观看| 日日骚一区二区网站| 免费看黄裸体一级大秀欧美| 香蕉视频免费网站| 亚洲另类一区二区| 91女人18毛片水多国产| 国产一区二区久久精品| 另类图片综合电影| 精品在线一区| 亚洲日本视频| 高清中文字幕mv的电影| 伊人开心综合网| 国产免费的av| 日韩在线视频观看| 99精品国自产在线| 秋霞在线观看一区二区三区| 午夜在线播放视频欧美| 手机免费看av片| 婷婷一区二区三区| 手机看片1024日韩| 国内揄拍国内精品| 国产成人aa在线观看网站站| 日韩成人三级视频| 国产精品888| 欧美成人一二三区| 日韩欧美亚洲国产另类| 羞羞视频在线观看不卡| 99re在线国产| 黄色亚洲大片免费在线观看| 性高潮免费视频| 午夜伊人狠狠久久| 污视频网站免费观看| 91黑丝在线观看| 窝窝社区一区二区| 欧美一级黄色影院| 亚洲国产精品v| 伊人网综合在线| 久久久精品国产一区二区| 国产免费av国片精品草莓男男| 最新精品视频| 国产.精品.日韩.另类.中文.在线.播放| 久久99久久98精品免观看软件 | 亚洲91视频| 欧美日韩一区二区区别是什么| 亚洲高清免费一级二级三级| 天堂av2024| 国产精品69久久久久| 欧美freesextv| 91丨porny丨九色| 亚洲成人自拍网| 日本一二三区在线视频| 国产精品成久久久久三级| 日韩欧美视频| 可以看的av网址| 狠狠操狠狠色综合网| 国产永久免费高清在线观看| 成人精品久久av网站| 国产精品porn| 成人乱码一区二区三区av| 欧美日韩精品福利| 美女精品导航| 亚州欧美一区三区三区在线| 国产麻豆精品在线| 日本中文在线播放| www.国产一区| 日韩欧美四区| 在线视频一二区| 精品久久久精品| 免费在线观看av| 国产一区高清视频| 久久成人av少妇免费| 黄色小视频在线免费看| 伊人久久大香线蕉av一区二区| 精品中文字幕一区二区三区四区| 日韩国产欧美亚洲| 亚洲欧美综合另类在线卡通| 后入内射欧美99二区视频| 国产精品久久久久久av| 欧美日韩四区| 国产又粗又长免费视频| 亚洲第一中文字幕| 成人网av.com/|