線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3935
推到 Plurk!
推到 Facebook!

Component Shift Out of Device Screen

尚未結案
murraychen58
一般會員


發表:1
回覆:0
積分:0
註冊:2018-09-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2018-09-02 11:41:47 IP:61.223.xxx.xxx 未訂閱
環境:
1. Windows 7 FlagShip SP1
2. Embarcadero RAD Studio 10.2
Target: Android
Style: Android
View: Master
3. Device: Samsung Note 2
現象:
以 Multi-Device Application 開發出來的 Android APK (沒用到任何 Layouts Component, 僅有一個 TButton 及一個 TMemo 而已),
在 Device 上 Component 會有部份移出 Samsung Note 2 Screen 的外框
問題:
1. 是 Form Size 的設定錯誤嗎?
2. 如何用 Android AVD Manager Create 出 Samsung Note 2?
3. 如何讓 Form 可以自動 Re-Size 來 Match Device 的尺寸?

Thanks.

- Murray
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2018-09-05 10:17:24 IP:118.169.xxx.xxx 未訂閱
Android 裝置本來就是百家齊放, 不若Apple 只有iPhone/iPad尺寸是很固定的, 所以前輩們都會告知, 要使用 TLayoutScale 來取代 TLayout
不過我自己的實作經驗, 用 TLayOUtScale 在 Android 上也無法完全解決match size 的問題, 所以我是用 TLayout 來做為框架(在Form的最上層置一個TLayout), 再把所有元件放在Layout 中
第二, 我自己算比例, 最簡單的做法, 你自己先定一個 Layout 的 size(height, width)做為基底(我通常是以 w360*h640), 而我們可以取得device screen size (Screen.Size.cx 及 cy),
cx / layout width = 得出一個比例, 再把這個比例指定給 Layout 的 scale x 值, 就可以自動縮放到接近 device 的大小了, 包含layout 內的元件們, 這是最讓我讚賞的, 因為我不用寫code, 一個個將元件做縮放(fmx中每個視覺化元件都會有scale 的屬性), 當然計算會有些許誤差, 因此我還設計一個可手動調動 w/h 的功能做為微調

你沒有layout, 當然會造成部份元件超出手機大小!

以上純屬個人經驗, 不論證學術性!_
===================引 用 murraychen58 文 章===================
環境:
1. Windows 7 FlagShip SP1
2. Embarcadero RAD Studio 10.2
Target: Android
Style: Android
View: Master
3. Device: Samsung Note 2
現象:
以 Multi-Device Application 開發出來的 Android APK (沒用到任何 Layouts Component, 僅有一個 TButton 及一個 TMemo 而已),
在 Device 上 Component 會有部份移出 Samsung Note 2 Screen 的外框
問題:
1. 是 Form Size 的設定錯誤嗎?
2. 如何用 Android AVD Manager Create 出 Samsung Note 2?
3. 如何讓 Form 可以自動 Re-Size 來 Match Device 的尺寸?

Thanks.

- Murray
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2018-12-17 18:40:29 IP:119.137.xxx.xxx 未訂閱
Mobile 的屏幕小,不要像 Windows 程式一样,把屏幕划分成几个块。简单点,就是从上往下排列。

在不考虑比例缩放的情况下,最简单的办法,是把所有的元件,根据需要放入不同的 Layout,每个 Layout 都设置其 Align 为 Top。所有的 Layout 都放入一个 TVertScrollBox 里面,以便元件太多,屏幕太短,超出屏幕时,可以上下滑动。

在每个 Layout 里面的yuan'j元件,也采用 Align 为 Top 或者 Client 或者 Left 排列的方式。这样屏幕大小变了,它也是充满屏幕的,不会跑出去。

D10.3 有一个 Demo,演示了如何设计一个 UI,非常不错。这个 Demo 的名字:ProfileForm1
系統時間:2024-11-21 18:25:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!