精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

精品亚洲男同gayvideo网站| 亚洲va韩国va欧美va精品| 国产精品狼人色视频一区| 欧美日韩生活片| 日本一区二区三区视频在线看| 亚洲午夜视频在线观看| 欧美成ee人免费视频| 中文字幕黄色av| 黄色精品网站| 亚洲国产免费av| 手机看片一级片| 丁香花视频在线观看| 国产欧美精品一区二区色综合| 亚洲一区二区免费| 日日噜噜噜噜人人爽亚洲精品| 日韩理论在线| 日韩麻豆第一页| 三级网站免费看| 性感美女一区二区在线观看| 亚洲欧美偷拍三级| 日本午夜一区二区三区| 亚洲欧美激情在线观看| 美女一区二区三区在线观看| 97视频免费在线看| 日韩在线观看视频一区二区| 国产欧美一区二区精品久久久| 日韩欧美综合一区| 亚洲男人天堂色| 国产裸舞福利在线视频合集| 不卡免费追剧大全电视剧网站| 国产综合色香蕉精品| av黄色在线播放| 怡红院精品视频在线观看极品| www.久久久久| 性の欲びの女javhd| 日韩一级电影| 亚洲福利小视频| 中文字幕第三区| 日韩综合av| 日本电影亚洲天堂一区| 欧美日韩黄色一级片| 日皮视频在线观看| 亚洲精品欧美专区| 一区二区精品在线观看| 1024国产在线| 中文字幕乱码日本亚洲一区二区 | 99国产精品久久久久| 97久久精品午夜一区二区| www.久久视频| 欧美永久精品| 欧美久久久精品| 久久久久亚洲av无码专区体验| 久久久久电影| 久久视频在线播放| 青青草手机在线观看| 欧美久久视频| 欧美丰满片xxx777| 麻豆一区二区三区精品视频| 国内一区二区三区| 欧美激情免费在线| av大片免费在线观看| 国产日韩高清一区二区三区在线| 久久久噜噜噜久久中文字免| 精品少妇一二三区| 日韩视频二区| 日本一区二区在线免费播放| 樱花视频在线免费观看| 欧美aaaaaa午夜精品| 国产精品视频精品| 国产又大又长又粗| 国产成人亚洲精品青草天美| 国产精品手机视频| 日本视频在线观看一区二区三区| 久久久蜜桃精品| 亚洲欧洲日韩综合二区| 免费a级人成a大片在线观看| 亚洲蜜臀av乱码久久精品| 久久香蕉视频网站| 欧美一级鲁丝片| 欧美性淫爽ww久久久久无| 欧美大片久久久| 在线视频亚洲欧美中文| 亚洲欧美国产一区二区三区| 成人在线观看免费高清| 亚洲欧洲中文字幕| 8x海外华人永久免费日韩内陆视频 | 五月婷婷之综合激情| 亚洲成人a级片| 欧美变态tickle挠乳网站| 黄色录像a级片| 日韩av大片| 国产69精品久久久久9| 波多野结衣啪啪| 韩国v欧美v日本v亚洲v| 国产伦精品一区二区三区| 国产黄色在线播放| 亚洲国产一区二区三区| 国产黄色特级片| 精品中文字幕一区二区三区四区 | 在线亚洲免费视频| www.五月天色| 日韩欧美四区| 久久天天躁日日躁| 亚洲高清毛片一区二区| 国产制服丝袜一区| 久久综合久久久| 欧美视频在线免费播放| 大地资源中文在线观看免费版| 亚洲欧美激情小说另类| 国产成人黄色片| 日韩专区视频| 亚洲人av在线影院| 久久久久亚洲天堂| 久久精品久久综合| 麻豆亚洲一区| 136福利第一导航国产在线| 欧美日韩一区二区三区在线| 中文字幕在线视频播放| 久久久国产精品| 国产精品久久久久久久久久99| 天天操天天插天天射| 亚洲欧美日韩国产一区二区三区| 精品一卡二卡三卡| 国产一区二区三区亚洲| 久久久91精品国产| 国产又粗又猛又爽又| av不卡在线播放| 波多野结衣 作品| 国产精品日本一区二区三区在线| 亚洲天堂男人天堂女人天堂| 五月婷婷激情网| 成人性生交大片| 美女在线免费视频| 外国成人毛片| 日韩在线欧美在线| 国产成人av免费| 久久中文娱乐网| 国产中文字幕视频在线观看| 澳门成人av| 欧美成人精品在线播放| 国产精品自产拍| 国产精品久久久久久久久免费丝袜| 亚洲爆乳无码专区| 美女久久久久| 青青草成人在线| 欧美套图亚洲一区| 日韩欧美黄色动漫| 亚洲AV无码国产成人久久| 亚洲作爱视频| 免费成人深夜夜行视频| 中国色在线日|韩| 亚洲女人天堂av| 亚洲不卡在线视频| 国产偷国产偷精品高清尤物| 网站一区二区三区| 欧美电影一区| 亚洲xxxxx| 男女视频在线| 亚洲精品国产品国语在线 | 午夜精品在线视频一区| 超碰caoprom| 国产精品久久久免费| 欧美日韩电影一区二区三区| 性欧美videohd高精| 在线国产精品视频| 国产精品无码免费播放| 亚洲综合色自拍一区| 性囗交免费视频观看| 亚洲综合欧美| 亚洲精品成人久久久998| 日本午夜免费一区二区| 欧美精品一二区| 亚洲aaaaaaa| 91成人在线精品| 欧美特黄一级片| 岛国av在线一区| 欧美视频免费播放| 天堂网在线观看国产精品| 北条麻妃高清一区| 超碰aⅴ人人做人人爽欧美| 中文字幕亚洲情99在线| 好男人www在线视频| 一本色道久久综合狠狠躁的推荐| 三区四区在线观看| 福利视频网站一区二区三区| 精品99在线视频| 99久久久久| 久久久久久九九九九| 国产综合色激情| 久久人人97超碰精品888| av免费观看一区二区| 日韩写真欧美这视频| 欧美性猛交bbbbb精品| 日韩一区有码在线| 真人bbbbbbbbb毛片| 精品在线一区二区三区| 成 年 人 黄 色 大 片大 全| 爽成人777777婷婷| 久久99欧美| 亚洲精品在线播放| 国产精品视频久久| 黄毛片在线观看| 久久亚洲私人国产精品va| 青青草手机在线| 日韩欧美国产高清| 这里只有精品免费视频| 亚洲成av人影院| 欧美在线视频第一页| 国产欧美日韩激情| 在线观看国产三级| 国产精品一区二区不卡| www.精品在线| 久久激情综合| 美女日批免费视频| 午夜精品亚洲| 一本一道久久久a久久久精品91 | 亚洲国产成人在线视频| jizz中国少妇| 欧美色视频一区| 亚洲色成人www永久网站| 亚洲国产成人91porn| 成年人av电影| ㊣最新国产の精品bt伙计久久| 六月婷婷七月丁香| 99这里只有久久精品视频| 制服.丝袜.亚洲.中文.综合懂| 蜜桃传媒麻豆第一区在线观看| 精品99在线视频| 亚洲欧美日本国产专区一区| 欧美日韩福利在线| 欧美视频导航| 日本精品福利视频| 亚洲一区二区三区| 日韩精品第1页| 亚洲电影影音先锋| 国产卡一卡二在线| 亚洲欧洲美洲一区二区三区| 手机福利在线视频| 国产精品99久久久久久动医院| 色狠狠久久av五月综合| 欧美精品一区二区三区精品| 欧美资源一区| 日韩极品一区| 亚洲在线视频一区二区| 国产精品久久观看| 色呦呦网站入口| 中文在线日韩| 欧美性潮喷xxxxx免费视频看| 欧美久久99| 日韩一级性生活片| 日韩亚洲国产精品| 欧美视频在线播放一区| 乱码第一页成人| 男人操女人免费| 美腿丝袜在线亚洲一区| 婷婷中文字幕在线观看| 国产成人精品网址| 国产精品入口麻豆| 2023国产精品视频| 99久久久无码国产精品衣服| 国产精品久久看| 色偷偷www8888| 亚洲最新在线观看| 国产尤物在线视频| 欧美色欧美亚洲另类二区| 国产精品综合在线| 亚洲激情国产精品| av中文字幕在线| 欧美老女人性生活| 无遮挡爽大片在线观看视频| 国产精品91视频| 国产成人免费视频网站视频社区 | 亚洲国产欧美在线| 伊人手机在线视频| 欧美日韩激情在线| 黄色福利在线观看| 国产亚洲精品久久久久动| 日本www在线| 国产做受69高潮| av在线日韩| 国产91精品一区二区绿帽| 亚洲系列另类av| 中文字幕一区二区三区乱码 | 国产精品va在线| 北岛玲精品视频在线观看| 国产日韩一区二区三区| 青青一区二区三区| 人妻夜夜添夜夜无码av| 蜜臀久久99精品久久久画质超高清| 91香蕉视频免费看| 国产色婷婷亚洲99精品小说| 极品颜值美女露脸啪啪| 欧美性猛交xxxx免费看| 99久久99久久久精品棕色圆| 亚洲精品小视频| 亚洲性图自拍| 国产精品久久久久久久av电影| 一区中文字幕电影| 亚洲国产精品视频一区| 99re国产精品| 久久综合桃花网| 国产蜜臀97一区二区三区 | 亚洲激情成人| 中文字幕 欧美日韩| 久久婷婷国产综合国色天香| 欧美成人黄色网| 欧美日韩在线播放三区四区| 人成网站在线观看| 久久手机免费视频| 成人精品电影在线| 国产欧美日韩一区二区三区| 忘忧草精品久久久久久久高清| 免费黄色福利视频| 成人午夜又粗又硬又大| 中文字幕人妻一区二| 在线观看一区二区视频| 性感美女视频一二三| 欧美高清一级大片| 国产精品一区二区精品| 图片区小说区区亚洲五月| 香蕉视频成人在线观看| 熟妇高潮一区二区| 一区二区不卡在线播放 | 91视频免费网址| 欧美v国产在线一区二区三区| 免费网站成人| 国产精品69久久| 杨幂一区二区三区免费看视频| 日韩一级片免费视频| 国产成人在线看| 青青青在线免费观看| 欧美美女网站色| 尤物网在线观看| 国产精品老女人视频| 国产尤物久久久| 日韩精品一区二区三区不卡 | 久久免费黄色| 一区二区三区四区免费| 色哟哟一区二区在线观看| 青青草超碰在线| 国产成人av在线播放| 国产影视一区| 午夜两性免费视频| 中文字幕欧美一| 国产99对白在线播放| 欧美精品免费在线| 亚洲一区二区三区四区电影| 国产av熟女一区二区三区| 成人性生交大合| 日韩精品乱码久久久久久| 亚洲精品xxx| 成人片免费看| 天堂精品一区二区三区| 另类小说一区二区三区| 亚洲人做受高潮| 制服丝袜亚洲网站| 新版中文在线官网| 国产精品伊人日日| 99在线精品视频在线观看| 国产中文字幕一区二区| 91黄视频在线| 里番在线观看网站| 91精品久久久久久蜜桃| 伊人久久大香线蕉综合热线| aaaaaav| 欧美天堂一区二区三区| 日韩成人影视| 亚洲最大福利网站| 一区二区三区国产盗摄| 制服 丝袜 综合 日韩 欧美| 欧美日韩精品福利| 欧美人与牲禽动交com| 精品国产中文字幕| 热久久久久久久| 久久久久久福利| 亚洲欧洲日产国产网站| 国产一区二区三区黄网站| 国产精品久久中文字幕| 国产精品色哟哟网站| 精品人妻一区二区三区日产乱码| 韩国一区二区电影| 日韩综合网站| 国产人妻黑人一区二区三区| 色婷婷av久久久久久久| 中文字幕中文字幕在线十八区| 精品国产电影| 激情五月婷婷综合网| 欧美精品二区三区| 精品国产依人香蕉在线精品| 黑色丝袜福利片av久久| 黄色小视频免费网站| 午夜电影网亚洲视频| 久做在线视频免费观看| 久久精品国产一区二区三区日韩 | 精品麻豆av| 老司机精品视频导航| 国产女同在线观看| 久久成人18免费网站| 国产亚洲精品美女久久久久久久久久| 国产精品嫩草影视|