国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

鴻蒙HarmonyOS三方件開發指南(8)-RoundedImage

開發 OpenHarmony
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com/#zz

[[380586]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

1. RoundedImage組件功能介紹

1.1. 功能介紹:

RoundedImage組件可以將圖片顯示成圓形,橢圓形,圓角矩形,目前僅支持上述三種樣式顯示。

1.2. 模擬器上運行效果:

2. RoundedImage使用方法

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

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

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

修改主頁面的布局文件ability_main.xml,增加com.custom.library.RoundedImage組件,組件的寬和高自定義。

  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.     <com.custom.library.RoundedImage 
  8.         ohos:id="$+id:image1" 
  9.         ohos:height="300" 
  10.         ohos:width="300" 
  11.         ohos:top_margin="20vp" 
  12.         ohos:layout_alignment="center"/> 
  13.     <com.custom.library.RoundedImage 
  14.         ohos:id="$+id:image2" 
  15.         ohos:height="400" 
  16.         ohos:width="400" 
  17.         ohos:layout_alignment="center" 
  18.         ohos:top_margin="20vp"/> 
  19.     <com.custom.library.RoundedImage 
  20.         ohos:id="$+id:image3" 
  21.         ohos:height="500" 
  22.         ohos:width="500" 
  23.         ohos:layout_alignment="center" 
  24.         ohos:top_margin="20vp"/> 
  25. </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.     RoundedImage roundedImage1 = (RoundedImage) findComponentById(ResourceTable.Id_image1); 
  6.     roundedImage1.setPixelMapToRoundedRect(ResourceTable.Media_photo, 100, 50, 100, 50); 
  7.     RoundedImage roundedImage2 = (RoundedImage) findComponentById(ResourceTable.Id_image2); 
  8.     roundedImage2.setPixelMapToRoundedRect(ResourceTable.Media_photo1, 100, 100, 100, 100); 
  9.     RoundedImage roundedImage3 = (RoundedImage) findComponentById(ResourceTable.Id_image3); 
  10.     roundedImage3.setPixelMapToRoundedRect(ResourceTable.Media_photo2, 50, 100, 50, 100); 
  11.     } 

 增加如下代碼可顯示圓形:

  1. @Override 
  2. public void onStart(Intent intent) { 
  3.     super.onStart(intent); 
  4.     super.setUIContent(ResourceTable.Layout_ability_main); 
  5.     RoundedImage roundedImage1 = (RoundedImage) findComponentById(ResourceTable.Id_image1); 
  6.     roundedImage1.setPixelMapToCircleImage(ResourceTable.Media_photo); 
  7.     RoundedImage roundedImage2 = (RoundedImage) findComponentById(ResourceTable.Id_image2); 
  8.     roundedImage2.setPixelMapToCircleImage(ResourceTable.Media_photo1); 
  9.     RoundedImage roundedImage3 = (RoundedImage) findComponentById(ResourceTable.Id_image3); 
  10.     roundedImage3.setPixelMapToCircleImage(ResourceTable.Media_photo2); 

 增加如下代碼可顯示橢圓形:

  1. @Override 
  2. public void onStart(Intent intent) { 
  3.     super.onStart(intent); 
  4.     super.setUIContent(ResourceTable.Layout_ability_main); 
  5.     RoundedImage roundedImage1 = (RoundedImage) findComponentById(ResourceTable.Id_image1); 
  6.     roundedImage1.setPixelMapToOvalImage(ResourceTable.Media_photo3); 
  7.     RoundedImage roundedImage2 = (RoundedImage) findComponentById(ResourceTable.Id_image2); 
  8.     roundedImage2.setPixelMapToOvalImage(ResourceTable.Media_photo4); 
  9.     RoundedImage roundedImage3 = (RoundedImage) findComponentById(ResourceTable.Id_image3); 
  10.     roundedImage3.setPixelMapToOvalImage(ResourceTable.Media_photo5); 

 3. RoundedImage開發實現

3.1. 新建一個Module

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

3.2. 新建一個RoundedImage類

新建一個RoundedImage類,繼承自Image類,實現DrawTask.onDraw接口,代碼如下:

用于繪制圓形:

  1. @Override 
  2. public void onDraw(Component component, Canvas canvas) { 
  3.     float centerX = getWidth() / 2f; 
  4.     float centerY = getHeight() / 2f; 
  5.     float radius = Math.min(centerX, centerY); 
  6.     Paint paint = new Paint(); 
  7.     Shader shader = new PixelMapShader(holder, Shader.TileMode.CLAMP_TILEMODE, Shader.TileMode.CLAMP_TILEMODE); 
  8.     paint.setShader(shader, Paint.ShaderType.SWEEP_SHADER); 
  9.     canvas.drawCircle(centerX, centerY, radius, paint); 

 用于繪制橢圓形:

  1. @Override 
  2. public void onDraw(Component component, Canvas canvas) { 
  3.     Paint paint = new Paint(); 
  4.     Shader shader = new PixelMapShader(holder, Shader.TileMode.CLAMP_TILEMODE, Shader.TileMode.CLAMP_TILEMODE); 
  5.     paint.setShader(shader, Paint.ShaderType.SWEEP_SHADER); 
  6.     PixelMap pixelMap = holder.getPixelMap(); 
  7.     int min = Math.min(pixelMap.getImageInfo().size.width, pixelMap.getImageInfo().size.height); 
  8.     int radiusX = Math.min(min, minImageLength); 
  9.     float halfRadiusX = radiusX / 2f; 
  10.     float quarterRadiusX = radiusX / 4f; 
  11.     float left = getWidth() / 2f - halfRadiusX; 
  12.     float right = getWidth() / 2f + halfRadiusX; 
  13.     float top = getHeight() / 2f - quarterRadiusX; 
  14.     float bottom = getHeight() / 2f + quarterRadiusX; 
  15.     RectFloat rect = new RectFloat(lefttopright, bottom); 
  16.     canvas.drawOval(rect, paint); 

 用于設置圓角矩形,調用Image方法進行設置:

  1. setCornerRadii(new float[]{topLeft, topLeft, topRigth, topRigth, bottomRight, bottomRight, bottomLeft, bottomLeft}); 

3.3. 編譯HAR包

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

在Gradle構建任務中,雙擊PackageDebugHar或PackageReleaseHar任務,構建Debug類型或Release類型的HAR。

待構建任務完成后,可以在loadingview> bulid > outputs > har目錄中,獲取生成的HAR包。

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

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

©著作權歸作者和HarmonyOS技術社區共同所有,如需轉載,請注明出處,否則將追究法律責任。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-03-01 09:48:24

鴻蒙HarmonyOS應用開發

2021-02-24 15:22:47

鴻蒙HarmonyOS應用開發

2021-01-13 09:40:31

鴻蒙HarmonyOS開發

2021-04-16 09:28:18

鴻蒙HarmonyOS應用

2021-06-28 14:48:03

鴻蒙HarmonyOS應用

2021-01-18 09:52:20

鴻蒙HarmonyOS開發

2021-02-04 09:45:19

鴻蒙HarmonyOS應用開發

2021-02-26 14:15:27

鴻蒙HarmonyOS應用開發

2021-01-20 09:54:56

鴻蒙HarmonyOS開發

2021-01-12 12:04:40

鴻蒙HarmonyOS應用開發

2021-01-21 13:21:18

鴻蒙HarmonyOSPhotoview組件

2021-03-01 14:01:41

鴻蒙HarmonyOS應用開發

2021-01-22 17:33:03

鴻蒙HarmonyOS應用開發

2021-03-31 09:50:25

鴻蒙HarmonyOS應用開發

2021-05-12 15:17:39

鴻蒙HarmonyOS應用

2021-04-12 09:36:54

鴻蒙HarmonyOS應用

2021-03-19 17:42:01

鴻蒙HarmonyOS應用開發

2021-04-20 09:42:20

鴻蒙HarmonyOS應用開發

2021-03-10 15:03:40

鴻蒙HarmonyOS應用

2021-08-04 14:16:41

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

国产女大学生av| 成人动漫一区二区在线| 国产欧美婷婷中文| 激情自拍一区| 天天干天天色天天爽| 国产欧美日韩中文久久| 黄页视频在线观看| 国产三级一区二区三区| 91青娱乐在线视频| 精品久久一二三区| 88久久精品| 99se婷婷在线视频观看| 国产精品自拍网站| jk破处视频在线| 亚洲国产又黄又爽女人高潮的| 偷拍一区二区| 欧美高清视频一区| 久久久国产综合精品女国产盗摄| 青青青手机在线视频观看| 日韩精品在线看| av中文一区| 色狠狠久久av五月综合| 6699嫩草久久久精品影院| 欧美二区在线看| 欧美日韩亚州综合| 最近最新中文字幕在线| 精品亚洲一区二区三区四区五区| 免费看成人人体视频| 日本视频一区二区不卡| 中文字幕一区二区三区在线观看| 成人动漫视频在线观看完整版| 午夜一区不卡| 激情视频免费网站| 亚洲国产精品成人精品| 国产精品豆花视频| 性刺激的欧美三级视频| 亚洲电影中文字幕| 欧美精品偷拍| 国产专区中文字幕| 亚洲丝袜av一区| 伊人久久大香线蕉av超碰演员| 99不卡视频| 中文字幕在线视频日韩| 国产视频一区免费看| 免费观看一二区视频网站| 视频在线观看99| 一本色道久久综合亚洲精品不卡| 亚洲污视频在线观看| 日韩精品一区二区视频| 久久精选视频| 高清性色生活片在线观看| 国产激情综合五月久久| 久久久午夜精品| 波多野结衣亚洲一二三| 欧美日韩一区在线播放| 欧美无砖砖区免费| 色喇叭免费久久综合| 蜜臀av免费观看| 欧美私人免费视频| 日韩精品诱惑一区?区三区| 国产wwwxx| 日韩视频在线观看免费| av高清久久久| 欧美freesex| 亚洲欧洲日韩综合二区| 精品日本一线二线三线不卡| 亚洲免费精品| 午夜在线观看视频| 久久精品国产美女| 欧美日韩一区久久| 99精品久久| 99riav在线| 久久资源av| 日韩午夜精品视频| 性欧美videos另类喷潮| 性国产高清在线观看| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 爱爱爱免费视频在线观看| 国产激情久久久久| 一区二区三区四区乱视频| 久久久久久毛片免费看 | 日韩美女啊v在线免费观看| 国产精品麻豆| 粉嫩虎白女毛片人体| 久久五月天色综合| 国产精品每日更新| 婷婷五月色综合香五月| 中国大陆高清aⅴ毛片| 97久久人人超碰caoprom欧美| 欧美优质美女网站| 免费亚洲一区| 久草在线资源站手机版| 999香蕉视频| 国产91色在线|| 日韩欧美国产骚| 美国一区二区三区在线播放| 成人福利av| 不要播放器的av网站| 97视频在线看| 亚洲妇熟xx妇色黄| 夜久久久久久| www.成人| 传媒在线观看| 九色综合日本| 一区国产精品视频| 中文字幕一区二区在线播放 | 国产欧美日韩一区二区三区| 欧美v国产在线一区二区三区| 日韩福利视频网| 精品国产亚洲一区二区三区| 三上悠亚一区二区三区| 久久久久久国产精品mv| 日韩中文字幕在线播放| 亚洲成人激情综合网| 欧美a级一区二区| 国产精品国产三级国产专播精品人| 亚洲在线一区二区三区| 亚洲第一毛片| **日韩最新| 国产999精品| 五月天男人天堂| 91佛爷在线| 91中文在线| 日韩精品视频一区二区三区| 激情婷婷综合| 国产成人在线小视频| 亚洲97在线观看| 在线成人午夜影院| 91免费国产在线观看| 欧洲av无码放荡人妇网站| 亚洲一区二区三区四区视频 | 国产免费裸体视频| 成人性生交大片免费看视频直播 | 官网99热精品| 久久伊人精品一区二区三区| 日本道精品一区二区三区| 粉嫩aⅴ一区二区三区四区 | 污污污污污污www网站免费| 日本电影一区二区三区| 水蜜桃亚洲精品| 黄色一级大片免费| av大片免费看| 6699嫩草久久久精品影院| 色135综合网| 亚洲色图35p| 亚洲三级免费观看| 精品一区二区三区日韩| 欧美成人激情| 亚洲综合资源| 国产一二区在线观看| www成人免费视频| 亚洲一区尤物| 91丨九色丨国产| 97人洗澡人人免费公开视频碰碰碰| 精品人在线二区三区| 欧美日韩精品国产| 久久综合久久综合九色| 久久精品九九| 日韩久久精品网| 国产精品丝袜在线播放| 99久久伊人| 黄视频网站在线观看| lutube成人福利在线观看| 狠狠操第一页| 男女超爽视频免费播放| 神马影院午夜我不卡影院| 91在线精品视频| 欧洲成人免费aa| 欧美激情精品久久久久久免费印度| 亚洲欧美日韩中文视频| 精品国产麻豆免费人成网站| 欧美三级日本三级少妇99| 亚洲综合色在线| 亚洲最大的免费视频网站| 精品视频二区| 米奇.777.com| www.99色.com| 亚洲xxxx2d动漫1| a级黄色小视频| 亚洲色婷婷久久精品av蜜桃| 视频一区亚洲| 任我爽在线视频精品一| 狠狠色综合网站久久久久久久| 777xxx欧美| 国产精品久久久久久五月尺| 性欧美精品孕妇| 天天躁日日躁狠狠躁欧美| 成人美女视频在线看| 精品久久久久久久久久久院品网 | 日日躁夜夜躁人人揉av五月天 | 亚洲一区影音先锋| 国产欧美日韩在线观看| 国产成人av影院| 久久电影国产免费久久电影| 日韩精品福利网| 老司机精品视频网站| 亚洲欧美日韩国产| 麻豆成人精品| 日韩中文字幕亚洲一区二区va在线| 老妇喷水一区二区三区|