android-relativelayout

___ qstnhdr ___ Die benutzerdefinierte Ansicht von Android zeigt nach dem Aufrufen von invalidate ein schwarzes Schwarz ___ qstntxt ___

In diesem Code möchte ich eine Linie zwischen den oberen zwei ImageViews zeichnen. Beim Ausführen der App wird die benutzerdefinierte Ansicht jedoch nach dem Aufruf von %code% schwarz dargestellt.

Hier ist mein Code:

%Vor%

Gibt es einen Grund, warum die benutzerdefinierte Ansicht nach dem Aufruf von %code% ? schwarz dargestellt wird?

    
___ answer37727332 ___

Wie Sie wissen, wird invalidate () verwendet, um eine Ansicht zu aktualisieren durch einen Aufruf von %code% .

Ich glaube, Sie haben es aufgerufen, bevor Sie update auf "true" setzen - also hat Ihre %code% -Methode mit einem falschen Update durch die Geräusche davon gespielt.

    
___ tag123androidcanvas ___ Die Android-Java-Leinwand (android.graphics.Canvas) ___ tag123androidcustomview ___ Ein Tag für Fragen zum Erstellen und Verwenden von benutzerdefinierten grafischen Widgets auf der Android-Plattform. ___ tag123androidrelativayout ___ Android-Layout, das untergeordnete Ansichten in relativen Positionen zueinander oder zur übergeordneten Ansicht anzeigt. ___ answer37733253 ___

In der Regel übernimmt das System die Größenänderung, das Ausblenden, Anzeigen und eine Menge anderer Dinge für Ihre Widgets automatisch, aber es treten manchmal Probleme auf, wenn der zugrunde liegende Puffer für gezeichnete Pixel oder Hintergrunddaten geändert wurde oder veraltet ist (Sie tauschen die Bildressource ein) eine Ansicht oder der Rohdatensatz ändert sich). Dies geschieht, weil das Betriebssystem auf keinen Fall wissen kann, dass sich die Daten in der bestimmten Weise geändert haben.

In diesen Fällen, in denen Sie mit dem Zeichnen arbeiten, müssen Sie dem System mitteilen, dass die zugrunde liegenden Daten mit Widget.invalidate () nicht in einem guten Zustand sind, und die Re-Zeichnung wird in den Haupt-Thread eingereiht . Abhängig von der Systemimplementierung und der Android-Version variiert das, was für Änderungen vom System verfolgt wird, aber was ich normalerweise tue, wird davon ausgegangen, dass Systemressourcen (Byte-Arrays, Char-Arrays, Ressourcenindizes, manuelles Zeichnen auf den Kontext) nicht verfolgt werden und ungültig werden müssen und alles andere wird vom System gehandhabt.

Quelle: Wenn es notwendig ist, invalidate () on auszuführen eine Ansicht?

    
___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___
1
Antwort

Wie man ein Layout für Tastaturhinweise in Android erstellt

Im Moment habe ich ein Tastaturlayout mit linearem Layout erstellt, jede Taste ist ein Bild, z. "Q", "W", "E" sind unterschiedliche Bilder. Das Problem ist, wie man das Hinweisbild live oben hinzufügt? Die Idee ist, das Hinweisbild ist...
15.12.2016, 11:27
2
Antworten

ImageView adjustViewBounds arbeitet nicht mit Relative Layout

Ich habe ein ImageView und habe seine layout_height auf "100dp" und seine layout_width auf "wrap_content" gesetzt. Der verwendete Zeichensatz hat größere tatsächliche Abmessungen, die 130 dpi (Breite) x 215 dpi (Höhe) betragen. Wenn%...
20.01.2015, 00:09
2
Antworten

Die benutzerdefinierte Ansicht von Android zeigt nach dem Aufrufen von invalidate ein schwarzes Schwarz

In diesem Code möchte ich eine Linie zwischen den oberen zwei ImageViews zeichnen. Beim Ausführen der App wird die benutzerdefinierte Ansicht jedoch nach dem Aufruf von invalidate() schwarz dargestellt. Hier ist mein Code: %Vor% Gibt e...
31.05.2016, 17:23