AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[FMX] Auflösung Tablets

Ein Thema von zeras · begonnen am 2. Feb 2014 · letzter Beitrag vom 11. Jul 2015
Antwort Antwort
Seite 1 von 2  1 2      
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#1

[FMX] Auflösung Tablets

  Alt 2. Feb 2014, 16:42
Ich habe ein Nexus 7 neuester Stand mit einer Auflösung von 1.920 x 1.200 Pixel.

Damit möchte ich mit Hilfe eines Canvas einige Sachen zeichnen.

Mit der Funktion

Delphi-Quellcode:
  if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenSvc)) then begin
    Size := ScreenSvc.GetScreenSize;

    ShowMessage(Format('ImageZeiger Breite %.0f, Höhe %.0f',[Size.x, Size.Y]));
  end;
hole ich mir die Auflösung und da wird eine andere Auflösung (960x552) angezeigt.
Was mache ich falsch?

Ich habe nämlich das Problem, dass designte Images nicht gleich dem zur Laufzeit erzeugten übereinstimmen, auch wenn diese die gleiche Größe haben.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: [FMX] Auflösung Tablets

  Alt 2. Feb 2014, 16:58
"Retina" Display, oder wie auch immer das bei Android heißt.

Genauso wie bei iOS...

Firemonkey rechnet bei einem iPHone mit 320 Width dargestellt wird 640!
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#3

AW: [FMX] Auflösung Tablets

  Alt 2. Feb 2014, 17:23

Firemonkey rechnet bei einem iPHone mit 320 Width dargestellt wird 640!
Danke für die Info.

Komisch ist nur, dass ich ein ASUS Memo HD habe, was bei der Breite 961 anzeigt, das Nexus 7 aber 960. Ich nutze die selbe Funktion, wie oben beschrieben.

Außerdem kommen dann noch andere Effekte:
ASUS Memo HD hat nach Datenblatt 1.280x800, angezeigt wird 960x552 (Höhe durch Toolbar reduziert)
Nexus 7 hat nach Datenblatt 1.920 x 1.200, angezeigt wird 961x552 (Höhe durch Toolbar reduziert)

Da passt das durch 2 dividieren beim Nexus schon aber beim ASUS ist das dann 1,3. Hat das noch irgendwas mit der Pixeldichte zu tun? Ich muss doch eine native Auflösung irgendwo herbekommen, damit ich mal genaue Bitmaps berechnen kann??
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#4

AW: [FMX] Auflösung Tablets

  Alt 2. Feb 2014, 17:38
Habs gefunden.

Ich muss neben Size auch noch Scale abfragen mit:

Delphi-Quellcode:
 if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenSvc)) then begin
    Size := ScreenSvc.GetScreenSize;

    Scale := ScreenSvc.GetScreenScale;
  end;
und dann sollte es passen.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: [FMX] Auflösung Tablets

  Alt 2. Feb 2014, 17:38
Klar


Delphi-Quellcode:
Procedure DDTInitGetScreenScale;
var
 ScreenSrv: IFMXScreenService;
begin
    if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenSrv)) then
      DDTGetScreenScale := ScreenSrv.GetScreenScale
    else
      DDTGetScreenScale := 1.0;
end;
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#6

AW: [FMX] Auflösung Tablets

  Alt 7. Jul 2015, 20:28
Ich bin es nochmal zu dem Thema.
Das mit Screenscale habe ich soweit begriffen. Was mir aber beim Test mit verschiedenen Tabletts Probleme macht, ist die vertikale Pixelanzahl.

Bei
Delphi-Quellcode:
 if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenSvc)) then begin
    ScreenSize := ScreenSvc.GetScreenSize;
    ScreenScale := ScreenSvc.GetScreenScale;
end;
bekomme ich bei einem Samsung SM-T110 600 raus. Das ist ja OK, aber müsste nicht der obere Rand, wo die Uhrzeit etc. steht, abgezogen werden? Auf dem Bereich sollte ich ja nicht zeichnen.
Wenn ich dann am oberen Rand ca. 30 Pixel habe, müsste dann die vertikale Auflösung dann nicht 570 sein?
Oder wie komme ich an die Höhe der oberen Statusbar?
Ist schon komisch, wenn ich ein ein Rechteck von 0,0 zeichne, dann fängt es unterhalb der oberen Statusbar an.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: [FMX] Auflösung Tablets

  Alt 7. Jul 2015, 21:48
...bekomme ich bei einem Samsung SM-T110 600 raus. Das ist ja OK, aber müsste nicht der obere Rand, wo die Uhrzeit etc. steht, abgezogen werden? Auf dem Bereich sollte ich ja nicht zeichnen.
Wenn ich dann am oberen Rand ca. 30 Pixel habe, müsste dann die vertikale Auflösung dann nicht 570 sein?
Oder wie komme ich an die Höhe der oberen Statusbar?
Ist schon komisch, wenn ich ein ein Rechteck von 0,0 zeichne, dann fängt es unterhalb der oberen Statusbar an.
Kommt darauf an ob Du eingestellt hast, dass die Statuszeite überlagert werden soll... Meine App schiebt die raus... (Android)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#8

AW: [FMX] Auflösung Tablets

  Alt 8. Jul 2015, 20:04
Kommt darauf an ob Du eingestellt hast, dass die Statuszeite überlagert werden soll... Meine App schiebt die raus... (Android)
Wie funktioniert das in deiner APP? Ich habe XE5 und könnte im Programm auch Änderungen einbauen.
Ich habe mal im Internet gelesen, dass man die Statusleiste zwar ausblenden kann, aber man würde Rootrechte und eine APP benötigen. Das wollte ich eigentlich nicht.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#9

AW: [FMX] Auflösung Tablets

  Alt 10. Jul 2015, 22:24
Hat keiner eine Idee für mich?
Es gibt doch hier im Forum Tausende von APP's Programmierer oder bin ich der einzige?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#10

AW: [FMX] Auflösung Tablets

  Alt 11. Jul 2015, 12:14
Man könnte das natürlich auch einfach mal googeln: Hiding the Status Bar. Einmal weitergoogeln zeigt dann, wie mal sowas mit FMX angeht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz