Qt移動應用開發(一):適配不一樣的屏幕

Qt移動應用開發(一):適配不一樣的屏幕

         到眼下爲止。Qt5.3已經出現很是長一段時間了。並且已經有一些應用使用Qt進行構建了。我本身也完畢了第一款使用Qt構建的手機遊戲《吃藥了》。那麼接下來的幾篇文章主要向你們分享我是如何使用Qt進行移動開發的。Qt移動應用開發分爲多篇博客文章,每一篇文章都力求精簡不羅嗦。力求爲你們提供一個快捷的參考。我在這裏也主要將使用Qt製做《吃藥了》的方法技巧一一分享給你們。css

         說到移動應用開發,第一想到的就是Android了,的確。android

Digia事實上在爲Qt制定向移動進軍的道路的時候充分地考慮了眼下移動市場。首先Android是開源的,能夠爭取到很是多軟硬件廠商,其次iOS是一款優秀的移動操做系統。最後Windows Phone 7/8也蓄勢待發,所以Digia主要在Qt5.0的時候引入了QPA的概念。這讓平臺適配變得easy起來;Qt5.1的時候實現了Android操做系統的適配;Qt5.2的時候實現了iOS系統的適配;Qt5.3的時候實現了Windows Phone的適配。固然一些小衆移動開發平臺比方說BB十、Ubuntu Phone和Jolla則是倒貼到Qt上來了。因此至此Qt已經能夠適應絕大多數移動平臺,再加上嵌入式領域的一枝獨秀,Qt其實已經成爲適配平臺最多的框架了。框架

         只是,哪怕是適配Android一個平臺,由於Android系統的碎片化以及Android應用是獨佔屏幕大小的,致使開發人員在開發應用的時候不得不考慮屏幕的分辨率。那麼Qt是怎樣想辦法實現的不一樣屏幕的適配呢?假設你是使用純C++開發的Qt框架。那麼個人另一篇文章可以幫助你。現在我主要介紹一下QML是怎樣解決的。佈局

一、使用錨佈局方式

         QML使用了一種叫錨佈局(anchorlayout)的佈局方式,這就比如是知道了某個控件的相對位置,而後另一個控件使用錨佈局的方式很是快就知道依據此控件該怎樣擺放。比方說這個截圖:post

         右下角的「copyright@jcystudio」就是使用錨佈局進行排列的:ui

Text
{
         anchors.bottom:parent.bottom
         anchors.right:parent.right
         text:"copyright©jcystudio"
}

二、使用Screen來獲取屏幕分辨率 

使用錨佈局可能還不夠,因爲圖片等元素一旦碰上了小分辨率的屏幕就會顯示不全。這種用戶體驗是很是差的。需要縮放才行。那麼問題就轉化爲怎樣知道屏幕的分辨率大小呢?這裏咱們採用QtQuick.Window 2.1中的Screen類。即便用Screen.width和Screen.height來獲取獲取屏幕的大小。spa

         最後分享一下我開發《吃藥了》Android和桌面版適配屏幕分辨率的方法:操作系統

Window
{
   id: root
   width: Qt.platform.os === "android"?

Screen.width: 320 height: Qt.platform.os === "android"?.net

Screen.height: 480 …… }code

         這段代碼的意思是假設當前的操做系統是Android。那麼使用Android屏幕的原始分辨率。不然的話採用的是320×480的配置。

如下是兩幅圖的對照:

如下是還有一個我開發的應用適配不一樣分辨率的對照:



         本文已參加《CSDN博文大賽》,請投我一票,支持不少其它Qt移動開發的原創內容!

相關文章
相關標籤/搜索