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

鴻蒙HarmonyOS三方件開發指南(1)-PrecentPositionLayout

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

[[375329]]

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

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

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

1. PrecentPositionLayout功能介紹

1.1. 組件介紹:

SDK提供了不同布局規范的組件容器,例如以單一方向排列的DirectionalLayout、以相對位置排列的DependentLayout、以確切位置排列的PositionLayout等。

其中PositionLayout中組件的位置是以絕對像素點定義的,無法實現根據屏幕的大小自適應。因此,引入一種以百分比方式定義的PrecentPositionLayout布局容器,通過它可以很方便的實現屏幕自適應。

1.2. 手機模擬器上運行效果:


2. PrecentPositionLayout使用方法

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

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

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

修改主頁面的布局文件ability_main.xml,將跟組件容器修改為com.isoftstone.precentpositionlayout.PrecentPositionLayout,然后再增加5個Text組件,分別位于屏幕的左上,左下,右上,右下和中間,每個組件的長度和寬度都占屏幕的25%。修改后代碼如下:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3.   
  4.  
  5. <com.isoftstone.precentpositionlayout.PrecentPositionLayout 
  6.  
  7.     xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  8.  
  9.     ohos:height="match_parent" 
  10.  
  11.     ohos:width="match_parent"
  12.  
  13.   
  14.  
  15.     <Text 
  16.  
  17.         ohos:id="$+id:text_helloworld" 
  18.  
  19.         ohos:height="250" 
  20.  
  21.         ohos:width="250" 
  22.  
  23.         ohos:left_margin="0" 
  24.  
  25.         ohos:top_margin="0" 
  26.  
  27.         ohos:background_element="$graphic:background_text" 
  28.  
  29.         ohos:text="左上25%" 
  30.  
  31.         ohos:text_size="50" 
  32.  
  33.         /> 
  34.  
  35.   
  36.  
  37.     <Text 
  38.  
  39.         ohos:id="$+id:text_helloworld" 
  40.  
  41.         ohos:height="250" 
  42.  
  43.         ohos:width="250" 
  44.  
  45.         ohos:left_margin="750" 
  46.  
  47.         ohos:top_margin="0" 
  48.  
  49.         ohos:background_element="$graphic:background_text" 
  50.  
  51.         ohos:text="右上25%" 
  52.  
  53.         ohos:text_size="50" 
  54.  
  55.         /> 
  56.  
  57.   
  58.  
  59.     <Text 
  60.  
  61.         ohos:id="$+id:text_helloworld" 
  62.  
  63.         ohos:height="250" 
  64.  
  65.         ohos:width="250" 
  66.  
  67.         ohos:left_margin="0" 
  68.  
  69.         ohos:top_margin="750" 
  70.  
  71.         ohos:background_element="$graphic:background_text" 
  72.  
  73.         ohos:text="左下25%" 
  74.  
  75.         ohos:text_size="50" 
  76.  
  77.         /> 
  78.  
  79.   
  80.  
  81.     <Text 
  82.  
  83.         ohos:id="$+id:text_helloworld" 
  84.  
  85.         ohos:height="250" 
  86.  
  87.         ohos:width="250" 
  88.  
  89.         ohos:left_margin="750" 
  90.  
  91.         ohos:top_margin="750" 
  92.  
  93.         ohos:background_element="$graphic:background_text" 
  94.  
  95.         ohos:text="右下25%" 
  96.  
  97.         ohos:text_size="50" 
  98.  
  99.         /> 
  100.  
  101.   
  102.  
  103.     <Text 
  104.  
  105.         ohos:id="$+id:text_helloworld" 
  106.  
  107.         ohos:height="250" 
  108.  
  109.         ohos:width="250" 
  110.  
  111.         ohos:left_margin="375" 
  112.  
  113.         ohos:top_margin="375" 
  114.  
  115.         ohos:background_element="$graphic:background_text" 
  116.  
  117.         ohos:text="中心25%" 
  118.  
  119.         ohos:text_size="50" 
  120.  
  121.         /> 
  122.  
  123.   
  124.  
  125. </com.isoftstone.precentpositionlayout.PrecentPositionLayout> 

 2.3. 增加Text組件的背景資源文件

為方便觀察,上一步我們將Text組件設置了一個繪制背景graphic:background_text。

這里需要在resources/base/grahic目錄下新增一個可繪制資源文件。

右鍵點擊graphic,選擇New-File,文件名輸入background_text.xml。


文件內容如下:(可復制background_ability_main.xml的內容,修改color值即可)

  1. <?xml version="1.0" encoding="UTF-8" ?> 
  2.  
  3. <shape xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  4.  
  5.        ohos:shape="rectangle"
  6.  
  7.     <solid 
  8.  
  9.         ohos:color="#00FFFF"/> 
  10.  
  11. </shape> 

 2.4. 修改MainAbilitySlince的UI加載代碼

在MainAbilitySlince類的onStart函數中,增加如下代碼。

  1. public void onStart(Intent intent) { 
  2.  
  3.     super.onStart(intent); 
  4.  
  5.     // 解析xml獲得PrecentPositionLayout對象 
  6.  
  7.     PrecentPositionLayout precentPositionLayout = (PrecentPositionLayout) LayoutScatter.getInstance(getContext()).parse(ResourceTable.Layout_ability_main, nullfalse); 
  8.  
  9.   
  10.  
  11.     // 自動調整組件的百分比 
  12.  
  13.     precentPositionLayout.AutoSize(); 
  14.  
  15.   
  16.  
  17.     // 設置到UI 
  18.  
  19.     super.setUIContent(precentPositionLayout); 
  20.  
  21.     //super.setUIContent(ResourceTable.Layout_ability_main); 
  22.  

 3. PrecentPositionLayout開發實現

3.1. 新建一個Module

新建一個Module,類型選擇HarmonyOS Library,模塊名為precentpositionlayout,如圖:


3.2. 新建一個PrecentPositionLayout類

新建一個PrecentPositionLayout類,繼承自PositionLayout類,并增加AutoSize()方法。

  1. /* 調整各組件的大小,按照百分比調整 
  2.  
  3.  *  將原來組件的起始位置,寬度和高度都視作相對于整個屏幕的百分比值,然后根據屏幕的分辨率轉換為實際的像素值。 
  4.  
  5.  *  注:考慮到使用0-100配置百分比的話,范圍太小不夠精確,因此配置范圍設置為0-1000, 
  6.  
  7.  *  比如當前屏幕是1920 * 1060, 某個組件的寬度和高度配置的是200,則表示改組件的寬和高都占整個屏幕的20%。 
  8.  
  9.  *  因此,調整后改組件的實際大小為384 * 212. 
  10.  
  11.  */ 
  12.  
  13. public void AutoSize() { 
  14.  
  15.     // 獲取屏幕分辨率 
  16.  
  17.     Optional<Display> display = DisplayManager.getInstance().getDefaultDisplay(this.getContext()); 
  18.  
  19.     Point pt = new Point(); 
  20.  
  21.     display.get().getSize(pt); 
  22.  
  23.   
  24.  
  25.     // 去除上面標題欄和下面導航欄的高度 
  26.  
  27.     pt.modify(pt.getPointX(), pt.getPointY() - 160); 
  28.  
  29.   
  30.  
  31.     // 調增各組件的大小 
  32.  
  33.     int childCount = getChildCount(); 
  34.  
  35.     for (int i = 0; i < childCount; i++) { 
  36.  
  37.         Component component = getComponentAt(i); 
  38.  
  39.         ComponentContainer.LayoutConfig config = component.getLayoutConfig(); 
  40.  
  41.         component.setLeft(config.getMarginLeft() * pt.getPointXToInt() / 1000); 
  42.  
  43.         component.setTop(config.getMarginTop() * pt.getPointYToInt() / 1000); 
  44.  
  45.         component.setWidth(config.width * pt.getPointXToInt()  / 1000); 
  46.  
  47.         component.setHeight(config.height * pt.getPointYToInt()  / 1000); 
  48.  
  49.     } 
  50.  
  51.   

 3.3. 編譯HAR包

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

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

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


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

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

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

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

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

 

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

2021-03-01 09:48:24

鴻蒙HarmonyOS應用開發

2021-02-24 15:22:47

鴻蒙HarmonyOS應用開發

2021-02-04 13:06:38

鴻蒙HarmonyOS應用開發

2021-04-16 09:28:18

鴻蒙HarmonyOS應用

2021-02-04 09:45:19

鴻蒙HarmonyOS應用開發

2021-02-26 14:15:27

鴻蒙HarmonyOS應用開發

2021-01-18 09:52:20

鴻蒙HarmonyOS開發

2021-06-28 14:48:03

鴻蒙HarmonyOS應用

2021-01-12 12:04:40

鴻蒙HarmonyOS應用開發

2021-01-20 09:54:56

鴻蒙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技術棧公眾號

日本a在线天堂| 国产精品久久久久久av福利| 亚洲av无码成人精品国产| 全亚洲第一av番号网站| 免费黄网站在线| 日本xxxxx18| 欧美一a一片一级一片| 户外露出一区二区三区| 福利小视频在线| 狠狠色综合播放一区二区| 欧美日韩国产91| 美女久久久久久久久久| 韩国三级成人在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产精品无av码在线观看| 91ts人妖另类精品系列| 超碰成人免费| 欧美精品99久久久**| 国产成人在线免费看| sm国产在线调教视频| 2014亚洲片线观看视频免费| 亚洲一区制服诱惑| 香蕉污视频在线观看| 欧美午夜在线| 国产一区二区三区在线视频| 亚洲天堂av网站| 国产精品成人**免费视频| 在线观看成人免费视频| 国产成人无码a区在线观看视频| 国产鲁鲁视频在线观看特色| 久久伊人中文字幕| 国产一区二区免费在线观看| 国产色综合视频| 欧美aaa在线| 日本人成精品视频在线| 日本学生初尝黑人巨免费视频| 日韩中文在线电影| 一本色道久久88综合亚洲精品ⅰ | 日韩综合中文字幕| 亚洲精品国产熟女久久久| 美女av一区| 亚洲第一中文字幕在线观看| 日韩精品国产一区| 久久久国产精品入口麻豆| 欧美日韩1234| www午夜视频| 国产激情欧美| 欧美日韩成人综合| 亚洲精品午夜在线观看| 欧美另类激情| 欧美男人的天堂一二区| 日韩一区二区三区不卡视频| 97久久网站| 精品视频999| 成人日韩在线视频| av在线亚洲一区| 91精品国产综合久久精品图片| 91高清国产视频| 成人黄色91| 日韩一级在线观看| 国产大尺度视频| 男人的天堂久久| 亚洲人成网站999久久久综合| 亚洲天堂视频一区| 欧美日韩国产免费观看视频| 日韩在线高清视频| 杨钰莹一级淫片aaaaaa播放| 欧美日韩视频| 97视频在线播放| 亚洲另类在线观看| 蜜臀av一区二区在线观看| 成人a在线视频| 精品国产无码一区二区三区| www.色综合.com| 欧美日韩精品一区| avtt亚洲| 亚洲美女屁股眼交3| 裸体裸乳免费看| 爱啪视频在线观看视频免费| 色综合久久九月婷婷色综合| 亚洲天堂网2018| 国产成人高清精品免费5388| 精品亚洲精品福利线在观看| eeuss中文字幕| 欧美三级特黄| 国外色69视频在线观看| 久久人人爽人人爽人人片av免费| 韩国三级中文字幕hd久久精品| 国产成人精品福利一区二区三区| 噜噜噜在线观看播放视频| 亚洲欧美综合另类在线卡通| 日韩精品在线视频免费观看| 黄瓜视频成人app免费| 欧美区一区二区三区| 野战少妇38p| 成人久久综合| 97免费视频在线播放| 久久久久久久亚洲| 国产精品夜夜爽| 少妇免费毛片久久久久久久久| 91亚洲天堂| 色狠狠综合天天综合综合| 久久久久亚洲av无码麻豆| 伊人久久大香线蕉综合网蜜芽| x99av成人免费| 国产精品自拍99| 国产美女在线精品| 日韩国产精品一区二区| heyzo一区| 3d动漫精品啪啪一区二区竹菊| 亚洲精品乱码久久久久久蜜桃图片| 欧美xxxxx视频| 91成人性视频| 成 人 黄 色 片 在线播放| 国产欧美一区二区精品忘忧草| 欧美亚洲黄色片| 国产精品日本一区二区三区在线| 亚洲色图av在线| 日韩免费黄色片| 国产精品一区专区| 亚洲一区二区不卡视频| 超碰一区二区| 亚洲第一偷拍网| 青青草原在线免费观看视频| 麻豆专区一区二区三区四区五区| 噜噜噜噜噜久久久久久91| 欧美大片黄色| 日韩一区二区三区电影| 永久免费看片视频教学| 日韩精品一级中文字幕精品视频免费观看 | 国产精品久久综合| 国产精品亚洲二区在线观看| 久久久免费毛片| 欧美激情一区二区三区高清视频| 97国产成人无码精品久久久| 欧美激情综合网| 91香蕉视频污版| 美女少妇全过程你懂的久久| 97超碰色婷婷| 亚洲色图另类小说| 欧美日韩国产精品一区二区三区四区 | 蜜桃视频在线观看www| 亚洲精品欧美综合四区| 女人高潮一级片| 五月综合激情| 91在线精品视频| 中文字幕在线播放网址| 日韩欧美你懂的| 久草视频手机在线观看| 国产白丝精品91爽爽久久| 亚洲爆乳无码精品aaa片蜜桃| 欧美电影院免费观看| 超薄丝袜一区二区| 精品人妻一区二区三区日产乱码| 亚洲视频免费在线| 一级全黄裸体片| 最新亚洲激情| 久久精品二区| www.26天天久久天堂| 最好看的2019年中文视频| 91成年人视频| 亚洲男同1069视频| 少妇搡bbbb搡bbb搡打电话| 色呦呦免费观看| 成人自拍在线| 久久理论片午夜琪琪电影网| 欧美自拍偷拍一区二区| 狠狠躁夜夜躁久久躁别揉| 人妻大战黑人白浆狂泄| 丝袜国产日韩另类美女| 夜夜爽www精品| gogo人体一区| 4k岛国日韩精品**专区| 国产51人人成人人人人爽色哟哟| 精品污污网站免费看| 日本中文字幕免费在线观看| 99这里只有久久精品视频| 日日摸天天爽天天爽视频| 日本久久一二三四| 成人动漫视频在线观看完整版| 色偷偷色偷偷色偷偷在线视频| 亚洲性日韩精品一区二区| 91精品国产乱码久久久久| 亚洲国产综合91精品麻豆 | 久久久夜色精品亚洲| 日本xxxx黄色| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲国产精品国自产拍久久| 欧美日韩免费网站| 国产乱子轮xxx农村| 成人午夜看片网址| 日日噜噜夜夜狠狠| 最新成人av网站| 亚洲欧美日韩不卡一区二区三区| 成人三级毛片| 国产精品看片资源| sqte在线播放| 日韩中文字幕第一页| 日本精品一二区| 欧美日韩mp4| 日韩精品一区不卡| 亚洲专区一二三| 亚洲高潮女人毛茸茸| 国产白丝网站精品污在线入口 | 国产高清精品网站| 国产av人人夜夜澡人人爽| 国产精品地址| 深田咏美在线x99av| 乱中年女人伦av一区二区| 91九色国产社区在线观看| 欧美艳星kaydenkross| 欧美另类99xxxxx| 不卡在线视频| 日韩av在线最新| 在线观看免费观看在线| 爱搞国产精品| 欧美剧情片在线观看| 天天干在线播放| 亚洲午夜成aⅴ人片| 国产视频精品免费| 国产拍揄自揄精品视频麻豆| 漂亮人妻被黑人久久精品| 国产在线观看一区二区| 国产高清视频网站| 日韩av中文字幕一区二区| 国产极品在线视频| 在线观看亚洲| 9色视频在线观看| 999久久久91| 亚洲图片小说在线| 青青草原综合久久大伊人精品| 你懂的网址一区二区三区| 加勒比色老久久爱综合网| 91视频网页| 亚洲精品国产九九九| 亚洲a在线观看| 国产精品日韩精品在线播放| 国产在线999| **精品中文字幕一区二区三区| 国产精品久久久久久亚洲调教| 自拍偷拍欧美视频| 日本精品久久久久影院| 天堂√8在线中文| 5278欧美一区二区三区| 色在线视频观看| 青青草一区二区| 正在播放日韩精品| 日本在线精品视频| 中文字幕av一区二区三区佐山爱| 热99精品只有里视频精品| 自拍视频在线看| 国产大片精品免费永久看nba| 日韩在线导航| www一区二区三区| 91亚洲精品视频| 精品国产第一国产综合精品| 91久久爱成人| 超碰成人在线观看| 久久偷看各类wc女厕嘘嘘偷窃| 国产精品视频3p| 久久综合狠狠综合久久综青草| 综合国产视频| 亚洲国产精品久久久久婷婷老年| 久久亚洲国产| 激情成人开心网| 激情久久一区| 欧美三级午夜理伦三级| 日日摸夜夜添夜夜添国产精品| 尤蜜粉嫩av国产一区二区三区| 青青草伊人久久| 亚洲精品成人在线播放| 国产成人免费网站| 在线视频 日韩| 中文字幕欧美三区| 亚洲成人生活片| 欧美日韩精品在线视频| www.久久视频| 日韩视频永久免费| 神马电影在线观看| 中文字幕综合在线| av在线free| 2019中文字幕在线| 日韩伦理一区二区| 国产精品青青草| 不卡av一区二区| www.亚洲成人网| 日本成人在线不卡视频| 国产chinesehd精品露脸| 91碰在线视频| 国产色无码精品视频国产| 亚洲国产视频在线| 中文在线免费观看| 精品电影一区二区三区 | 久久久久久免费| 在线免费日韩av| 日韩欧美国产中文字幕| 亚洲最大成人av| 亚洲精品www久久久| 老司机精品影院| 日韩美女视频免费在线观看| 国产欧美日韩电影| 日韩精品一区二区三区色偷偷| 一区二区日韩欧美| wwwwxxxx日韩| av一区二区三区黑人| 久久人妻无码aⅴ毛片a片app| 欧美日韩精品中文字幕| 草逼视频免费看| 中文字幕精品一区久久久久| 高清在线视频不卡| 91成人伦理在线电影| 成人毛片免费看| 欧美日韩第二页| 国产69精品久久久久777| 亚洲aaa视频| 日本韩国精品一区二区在线观看| 好男人在线视频www| 亚洲久本草在线中文字幕| 久久亚洲电影天堂| 少妇人妻在线视频| 免费日韩一区二区三区| mm131午夜| 日韩制服丝袜先锋影音| 亚洲天堂美女视频| 亚洲一区二区三区小说| 国产毛片久久久久| 一本色道久久综合狠狠躁篇怎么玩| av资源中文在线| 国产精品三区www17con| 欧美91大片| 超碰91在线播放| 中文字幕一区在线| 中文字幕欧美人妻精品一区蜜臀| 国产一区二区三区在线| 麻豆mv在线看| 国严精品久久久久久亚洲影视 | 99tv成人影院| 亚洲一区二区三区免费看| 日韩av网站在线观看| 熟女少妇内射日韩亚洲| 日本久久精品电影| 美国一级片在线免费观看视频| 2020欧美日韩在线视频| 日本一道高清一区二区三区| 无码人妻丰满熟妇区96| 91玉足脚交白嫩脚丫在线播放| 日本视频免费在线| 亚洲国产精品va| 竹内纱里奈兽皇系列在线观看 | 欧美无人区码suv| 精品久久香蕉国产线看观看gif| 狠狠人妻久久久久久综合麻豆| 欧美激情一级二级| 精品国产18久久久久久洗澡| 国产freexxxx性播放麻豆| 99久久夜色精品国产网站| 黄色在线观看国产| 亚洲性日韩精品一区二区| 九七影院97影院理论片久久 | 久久99精品久久久久子伦| av成人天堂| 无码人妻精品一区二区中文| 在线观看精品一区| 国产在线高清理伦片a| 91久久国产自产拍夜夜嗨| 在线观看亚洲| 亚洲天堂岛国片| 91精品国产综合久久婷婷香蕉| 精品麻豆一区二区三区| 成人av免费电影| 久久最新视频| 久久成人小视频| 日韩精品一区二区三区视频在线观看 | 久久久亚洲精品一区二区三区| 伊人精品一区二区三区| 久久99久国产精品黄毛片入口| 国产日韩三级| 91淫黄看大片| 一区二区三区波多野结衣在线观看| 天堂成人在线观看| 国产精品黄视频| 欧美破处大片在线视频| 国内精品久久99人妻无码| 欧美性做爰猛烈叫床潮| av黄色在线| 欧美一区二区视频在线| 国产揄拍国内精品对白| 日韩av一二三区| 最近2019免费中文字幕视频三| 999久久精品| 亚洲色图38p| 亚洲资源在线观看| av一本在线| 国产欧美日韩综合一区在线观看| 日本怡春院一区二区| 九九精品在线观看视频 | 欧美1—12sexvideos| 日韩精品久久久免费观看| 国产成人免费在线| 中文字幕一区二区三区四区免费看|