日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

delphi fmx android 屏幕分辨率

作者:黑貝是條狗 更新時間: 2022-10-11 編程語言

android下,和windows系統獲取分辨率,有一定的區別

比如我手機是2460x1080像素

但我在android下用screen.width,screen.height得到的是692*300 多

剛開始沒在意,因為開發的app一切正常

后來到客戶電視上,客戶看到自己電視 是900多x500多,說分辨率有問題

于是我開始找android的真正的物理分辨率如何獲取,方法如下:

得到我的分辨率是1887x1000,可和手機參數還是不一致,為什么?

后來得知,手機上面的分辨率是寫死的,實際獲取到的會有一點區別。

我用新獲取的分辨率 計算 繪制表格后,有一定問題,文字必須縮小,不然表格很難看,

如果用真實分辨率,那你得計算所有ui的高寬,在windows和android下會有兩套ui,

后來我放棄使用真實的,而是delphi計算后的screen分辨率,應該delphi設計者已經考慮到這些了

  uses FMX.BehaviorManager




if TBehaviorServices.Current.SupportsBehaviorService(IDeviceBehavior, DeviceBehavior, Self) then
   begin
     DisplayMetrics := DeviceBehavior.GetDisplayMetrics(Self);
     FPhysicalScreenHeight := DisplayMetrics.PhysicalScreenSize.cy;
     FPhysicalScreenWidth := DisplayMetrics.PhysicalScreenSize.cx;
     Memo1.Lines.Add('物理分辨率:');
     Memo1.Lines.Add(IntToStr(DisplayMetrics.PhysicalScreenSize.cx) + 'x' + IntToStr(DisplayMetrics.PhysicalScreenSize.cy));
   Memo1.Lines.Add('屏幕尺寸:');
     Memo1.Lines.Add(
       FloatToStr(sqrt(
      DisplayMetrics.PhysicalScreenSize.cx * DisplayMetrics.PhysicalScreenSize.cx / DisplayMetrics.PixelsPerInch / DisplayMetrics.PixelsPerInch +
       DisplayMetrics.PhysicalScreenSize.cy * DisplayMetrics.PhysicalScreenSize.cy / DisplayMetrics.PixelsPerInch / DisplayMetrics.PixelsPerInch)));
    Memo1.Lines.Add('PPI:');
    Memo1.Lines.Add(FloatToStr(DisplayMetrics.PixelsPerInch));
  end;

原文鏈接:https://blog.csdn.net/y281252548/article/details/127243792

欄目分類
最近更新