有時候在布局界面的時候,UI要求某個View或者某張圖檔按比例顯示,以适應不同的螢幕分辨率。
通常我們時通過自定義View或者引入第三方的庫來解決。現在我們既然已經使用了ConstraintLayout,它本身就支援這樣的按比例設定View大小的功能。
下面我們來介紹如何使用:
- 首先我們在布局中添加一個View:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZwpmL0AjNzcTO1EjN0MDN1ETL5ITLxETL4EDMy8CXuNmLlR2bjVGbw1WY4VmLuR2Yvw1LcpDc0RHaiojIsJye.jpg)
此時,沒有添加任何限制,顯示的比例就是原始圖檔的比例。
- 添加水準方向的限制:
添加完水準方向的限制後,注意此時預設的寬高為wrap_content。
- 将高度設定為match_constraint
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZwpmL0AjNzcTO1EjN0MDN1ETL5ITLxETL4EDMy8CXuNmLlR2bjVGbw1WY4VmLuR2Yvw1LcpDc0RHaiojIsJye.jpg)
如上圖:這裡我們将高度設定為match_constraint,然後發現下面出現了一個三角,這個就是設定View比例的地方。
- 設定View比例
下面我們點選這個三角形,并設定寬高的比例:
- 1:1
Android開發 - 掌握ConstraintLayout(十)按比例設定視圖大小 - 1:2
Android開發 - 掌握ConstraintLayout(十)按比例設定視圖大小
這裡設定的是寬度:高度的比例,我們檢視源碼可以看到這個屬性:
此時我們改變View的寬度,就會發現其高度也會保持這個比例而相應地變化了:
總結
本文我們是以寬度:高度進行View比例的設定,當然我們也可以以高度:寬度進行設定,道理都是一樣的。
設定View的比例也是ConstraintLayout相對于傳統的布局容器一個強大的功能,它使得布局更加靈活,更加容易得進行螢幕适配。
下一篇:
Android開發 - 掌握ConstraintLayout(十一)複雜動畫!如此簡單!,我們将介紹使用ConstraintLayout建立複雜動畫。
如有更多疑問,請參考我的其它Android相關部落格:
我的部落格位址