QML 从无到有 2
随着项目深入,需要移植到安卓上,问题来了,QML安卓适配!
幸好PC端程序和手机屏幕长宽比例相似。虽然单位像素,尺寸不同,通过比例缩放,可以实现组件PC和安卓通用代码。
第一步:定义全局的转换函数(300,500是你的PC端设计尺寸)
property var x_scale:mainWindow.width/300 property var y_scale:mainWindow.height/500 function get_x(x) { return x*x_scale; } function get_y(y) { return y*y_scale; }
第二步:将所有相关尺寸的都通过上面的转换函数计算新值
Text { id:nameText x:get_x(8) y:get_y(11) width:get_x(80) horizontalAlignment:Text.AlignRight color: "#000000" text: "" }
第三步:对于有些控件,安卓和PC端表现形式不一样,需要通过判断平台,额外定义。判断平台代码
function is_android() { return (Qt.platform.os == "android"); } //调用方法 Image { id: imageLogo y: get_y(58) width: get_x(167) height: get_y(70) anchors.horizontalCenterOffset: is_android()?get_x(-8):get_x(-4) anchors.horizontalCenter: parent.horizontalCenter source: "logo.png" }
最后,对于字体的大小的适配,推荐使用pixelSize来定义,同样需要转换函数来计算新的尺寸,这样可以跟其他控件保持一致。
相关推荐
huha 2020-10-16
xfcyhades 2020-11-20
sgafdsg 2020-11-04
Michael 2020-11-03
fengyeezju 2020-10-14
ziyexiaoxiao 2020-10-14
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28