2016-08-09 6 views
0

Ich habe ein 405x720 Bild, das das Hintergrundbild abdecken soll. Ich habe bemerkt, dass es das Bild dehnt, wenn der Bildschirm des Geräts kleiner als das Bild ist. (Ich verwende ein Galaxy S4, um meine Apps zu testen).Appcelerator Studio - Nicht dehnen Bild

Hier ist, was ich bisher:

var fullView = Ti.UI.createImageView({ 
     layout: 'vertical', 
     width: '100%', 
     height: '100%', 
     image: '/images/background.png' 
    }); 

Ich habe über die Clipping-Technik gehört, aber das ist nur für iOS verfügbar und ich möchte es für beide Plattformen haben. Gibt es eine Möglichkeit, dies zu tun? Oder sollte ich versuchen, es in der richtigen Größe zu ändern? Tipps/Anregungen sind willkommen!

Antwort

0

Sie sollten die richtigen Bilder entsprechend dem Seitenverhältnis des Bildschirms verwenden, auf dem Sie Ihre App ausführen möchten.

Sie können dies tun, indem Sie das Breite-Höhe-Verhältnis des Geräts berechnen und dann entscheiden, welches Bild angezeigt werden soll.

Aber eine einzelne Auflösung Bild direkt auf den gesamten Bildschirm zu verdecken wird nie funktionieren.

ein Bild, um die Größe, Sie Ti.Blob Klasse Methoden nach Abrufen Ihres Bildes Ti.Filesystem

Vergessen Sie auch nicht mit verwenden können, dass auf ganzen Hintergrund ein Bild setzt vielen Speicher nimmt vor allem in Android. Aus diesem Grund verwenden die meisten Apps kein vollständiges Bild, um den Hintergrund zu verdecken, sondern verwenden kleine Bilder wo immer nötig und füllen andere Bereiche nach Bedarf mit Farben oder Farbverläufen auf.

Aber wenn Ihre Anforderung ist, nur Bild im Hintergrund zu verwenden, dann entladen Sie es, sobald Sie zu anderen Bildschirm bewegen und laden Sie es wieder, wie Sie wieder darauf sind.

Weitere Punkte zu halten beachten:

  1. Wenn Sie bg Bild auf einem Blick festgelegt, dann wird es fit sein, um die Dimension einer Ansicht zu decken. Also, wenn Sie eine Ansicht von Breite/Höhe auf 100% haben, wird das Bild hineinpassen. Dies bedeutet, dass die Bildgröße von der Dimension der Ansicht abhängt, und nicht die Größe der Ansicht von der Bildgröße abhängt.

  2. Wenn Sie Bild auf Image gesetzt und nehme an, Sie haben:

    • Image width = FILL auf Bildschirmgröße von 720, dann wird die Bildhöhe sein entschieden automatisch das Seitenverhältnis zu halten.Es bedeutet, dass, wenn Sie ein Bild der Größe Breite = 720 und height = 400, dann die Image von Breite sein = FILL & height = 400

    • Bild von Größe Breite = 1000 und height = 800 & Image height = 400, dann wird das von Image Breite = 500 sein & height = 400

+0

Wie viel verbessert sich der Speicher, wenn ich Bilder als Hintergründe vermeiden und sie dann aufteilen und bei Bedarf bestimmte Bilder verwenden soll? Ich habe ungefähr 20 Ansichten, die einen Bildhintergrund verwenden. – Johnny

+0

Um ein Bild für den gesamten Bildschirmhintergrund zu verwenden, kann es den App-Speicher zu sehr beeinträchtigen. Sobald ich nur 5-6 Bildschirme hatte, die Bild als bg hatten, nicht sicher jetzt über die Größe jedes bg Bildes, aber es nahm ungefähr 50MB in Android, nach dem Entfernen dieser Bilder es nur 30MB um nahm. –

+0

danke für den Tipp. Wird zur Kenntnis nehmen. – Johnny

0

Das Problem ist, dass Sie dem Bildsteuerelement sagen, das Bild auf ein Objekt zu laden, das auf die gesamte Breite und Höhe des Bildschirms gestreckt ist - und wenn das Bildschirmseitenverhältnis anders ist als das, das Sie haben Habe dein Bild bis dahin beschnitten, dann bekommst du ein schlechtes Seitenverhältnis und das Bild sieht vermasselt aus.

Wenn Sie entweder die Breite oder die Höhe entfernen, wird das Seitenverhältnis des Bildes geladen.

Wenn ich will ein Hintergrundbild, was ich der beste Weg gefunden ist, ein quadratisches Bild zu machen, und dann meine Image Höhe Ti.UI.FILL und meine Breite Ti.UI.SIZE gesetzt - auf diese Weise zeigt es gut, Seitenverhältnis und die Seite, die „fit nicht "Der Bildschirm (Breite oder Höhe) wird nicht angezeigt.

+0

Als ich versuchte, die Breite und Höhe zu entfernen, gab es mir immer noch ein ausgedehntes Bild zurück. Ich denke, der einzige Weg, dies zu bekämpfen, ist entweder die Größe zu ändern, so dass es zu meinem Gerät passt, oder das zu tun, was der Typ oben gesagt hat, nämlich keine Hintergrundbilder zu machen, sondern sie in kleinere Teile zu trennen. Wie auch immer, ich danke Ihnen für diese Information bezüglich der Ti.UI.FILL und Ti.UI.SIZE, die ich später vielleicht noch brauche. – Johnny

+0

Bitte lesen Sie meine bearbeitete Antwort, da ich einige Punkte hinzugefügt habe, um die ich mich kümmern muss. –