AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Android Einsteiger Fragen Ansichten
Thema durchsuchen
Ansicht
Themen-Optionen

Android Einsteiger Fragen Ansichten

Ein Thema von haentschman · begonnen am 10. Jan 2015 · letzter Beitrag vom 10. Jan 2015
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#1

Android Einsteiger Fragen Ansichten

  Alt 10. Jan 2015, 11:37
Hallo Alle...

Ihr werdet es nicht glauben... Ich habe mein erstes "Hello World" mit XE7 auf mein Galaxy S2 bekommen...
Für die meisten ist das Pillepalle. Aber aller Anfang ist schwer und wurde Zeit!

Allein das Device im Delphi "sichtbar" zu machen war schon eine Herausforderung. Obwohl das I9000 als Gerät im System gelistet war fehlten noch Treiber. Bis man diese Info´s in den zahlreichen Anleitungen findet und dann noch die passenden Treiber... na ja.

Beim weiterem Rumspielen traten folgende erste Fragen auf.

1. Wie ermittelt man welche Ansicht man verwenden sollte?
2. Sollte man mit Ansichten arbeiten?
3. Sollte man lieber mit einer Ansicht und Anchor und Align arbeiten?
4. Wie erstellt man eine Ansicht richtig. Tutorial: http://docwiki.embarcadero.com/RADSt...e_neue_Ansicht
-> Die Ansicht wird korrekt gelistet.
-> die Größe (beim S2 480x800) ist viel zu groß auf dem Device.
-> wie wird der Wert für das CSS-Pixelverhältnis ermittelt und was bedeutet das?
-> Wo liegt der Unterschied zwischen PhysicalSize (ich nehme an die echte Pixelanzahl) und der LogicalSize (?)
Delphi-Quellcode:
unit View;

interface

implementation

uses

  system.Devices, system.Types, system.SysUtils;

const
  ViewName = 'Android_4_2_800_480'; // The name of the view.

initialization

  TDeviceinfo.AddDevice(TDeviceinfo.TDeviceClass.Phone,
                        ViewName,
                        TSize.Create(800, 480), TSize.Create(800 div 2, 480 div 2), // MinPhysicalSize(max, min), MinLogicalSize(max, min)
                        TSize.Create(800, 480), TSize.Create(800 div 2, 480 div 2), // MaxPhysicalSize(max,min), MaxLogicalSize(max,min)
                        TOSVersion.TPlatform.pfAndroid, 218); //Select the platform and the pixel density.

finalization

  TDeviceinfo.RemoveDevice(ViewName); // To unregister the view after unistalling the package.

end.
Code:
  <MobileDevice>
    <Displayname>Android 4.2" 800x480</Displayname>
    <Order>2020</Order>
    <Default>True</Default>
    <Name>Android_4_2_800_480</Name>
    <DevicePlatform Default="True">3</DevicePlatform>
    <FormFactor>2</FormFactor>
    <Portrait Enabled="True" Width="480" Height="800" Top="60" Left="25" StatusbarHeight="25" StatusBarPos="0" Artwork="$(BDS)\ObjRepos\de\Devices\images\Android4.cpng" />
    <UpsideDown Enabled="True" Width="480" Height="800" Top="73" Left="25" StatusbarHeight="25" StatusBarPos="0" Artwork="$(BDS)\ObjRepos\de\Devices\images\Android4180.cpng" />
    <LandscapeLeft Enabled="True" Width="800" Height="480" Top="25" Left="70" StatusbarHeight="25" StatusBarPos="0" Artwork="$(BDS)\ObjRepos\de\Devices\images\Android490.cpng" />
    <LandscapeRight Enabled="True" Width="800" Height="480" Top="25" Left="60" StatusbarHeight="25" StatusBarPos="0" Artwork="$(BDS)\ObjRepos\de\Devices\images\Android4270.cpng" />
  </MobileDevice>
5. Wenn man dann die Ansichtsgröße korrekt hat: Wie erstellt man sich dann noch die passenden "Artwork" als Rahmen? Was ist "cpng" für ein Format?
6. Bei mehreren Ansichten: Wie entscheidet das Device welche Ansicht es benutzt?
7. Welches Startprogrammsymbol wird in welcher Auflösung wann benutzt? Geht eins für Alle?
8. Welches Startbild wird in welcher Auflösung wann benutzt? Geht eins für Alle?

Danke für kurze Infos.

Geändert von haentschman (10. Jan 2015 um 12:09 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Android Einsteiger Fragen Ansichten

  Alt 10. Jan 2015, 15:05
Das sind aber viele Fragen.


(1) Wenn Du mehrere Ansichten erstellst, wählt das FMX-Framework die jeweils am besten passendste aus.
Du selbst muss da gar nichts wählen. Du stellst sie nur bereit.

(2) und (3) Die Ansichten sind dazu da, größere Unterscheide adressieren zu können. Beispielsweise Telefon vs. Tablet. Auch wenn Telefone immer größer und Tables immer kleiner werden, lässt sich pauschaliert sagen, dass auf einem Tablet mehr Platz ist. Und mit einer separaten Ansicht für das Tablet könntest Du diesem Umstand Rechnung tragen und z.B. weitere Controls einblenden etc. Dennoch solltest Du grundsätzlich mit Alignments und Margins arbeiten, da Du damit bestens kleinere Größenunterschiede kaschieren kannst. Wenn Du einstellst, dass ein Button immer oben rechts sitzt, dann ist es egal, ob die Breite 640, 645 oder 650 Pixel beträgt - der Button sitzt verlässlich da, wo er soll.

(4) und (5) Kann man machen - muss man meiner Ansicht nach aber nicht.

(6) siehe (1)

(7) und (8) sowohl iOS als auch Android verlangen nach diversen Icons und Splash-Screens.Wenn man dieses Fass öffnet, muss man es auch vollständig bedienen. Es gibt im Netz aber viele Seiten, die aus einem Bild verschiedene Größen berechnen. Zum Beispiel "MakeAppIcon.com" oder andere.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#3

AW: Android Einsteiger Fragen Ansichten

  Alt 10. Jan 2015, 15:28
Danke für deine Info´s...
Viele Fragen hast du schön zusammengefaßt zu meiner Zufriedenheit beantwortet. Mit der eigenen Ansicht komme ich aber noch nicht klar.
Zitat:
(4) und (5) Kann man machen - muss man meiner Ansicht nach aber nicht.
...bedeutet für mich, daß ich im Designer mir eine Ansicht nehme die in etwa der Größe des Devices entspricht. Im Falle des S2 wäre das die 4" Vorlage (ist größer). Dann arbeitet man grundsätzlich mit Anchors und Align. Dann paßt auch die zu große / zu kleine Vorlage.
Unabhängig davon wäre es trotzdem gut zu wissen wie man eine eigene Ansicht erstellt die wie die Faust auf´s Auge paßt.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Android Einsteiger Fragen Ansichten

  Alt 10. Jan 2015, 16:38
AFAIK musst du deine Ansicht mit den logischen und nicht in den physikalischen Größen erstellen.

Also in der XML mit 400x240
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#5

AW: Android Einsteiger Fragen Ansichten

  Alt 10. Jan 2015, 16:42
Danke für die Idee. Aber bevor ich Euch belästige habe ich schon zig Varianten probiert. Nie hat mein S2 auch nur ansatzweise diese Ansicht verwenden wollen. (Test mit Button oben, unten etc.) Wenn ich meine Ansicht alleinig neben der Master übertragen habe, wurde immer Master verwendet. Deshalb ja die Frage wie das Framework / Device die Ansicht auswählt.
PS: 800 div 2, 480 div 2 ist die LogicalSize und in der XML hatte ich auch die Hälfte verwendet. Dann war es zu klein.

Geändert von haentschman (10. Jan 2015 um 16:47 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:33 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