German Farbe bei enabled=False

peternmb

Well-Known Member
Licensed User
Longtime User
HAllo,

ich möchte bei einem edit-Control, dass es je nach Paramterübergabe änderbar oder nur lesbar nicht - soweit funktioniert das auch problemlos.

Was mich erheblich stört ist die schlecht lesbare Darstellung bei enabled=false. Ideal wäre, wenn ich das Edit leicht ausgrauen könnte.
Kann ich das irgendwo ändern? Ich finde Nichts :BangHead:
 

peternmb

Well-Known Member
Licensed User
Longtime User
ich habe es jetzt mal so versucht:
B4X:
edt1.Color = Colors.LightGray
edt1.InputType=edt1.INPUT_TYPE_NONE
das würde den Zweck erfüllen - das edit verändert dabei jedoch die Größe, es wird einige Pixel größer.
Da es sich um mehrere Edits handelt, die recht nahe bei einander liegen sieht das dann nicht so toll aus :sign0148:
 

klaus

Expert
Licensed User
Longtime User
Du kannst den Hintergrund ändern wie Du willst.
Ich bin einverstanden dass die Standard disabled Hintergrundfarbe scheusslich aussieht.
Du könntest zwei Bitmaps erstellen, eine für jeden Zustand, und diese den EditTexts zuweisen.
Die Bitmaps könnten einen durchsichtigen Umrand haben wie das Original.

Die Originalbitmap für den disabled Zustand ist eine halbdurchsichtige Bitmap.

Beiliegen ein kleines Testprogramm zum rumspielen.

Beste Grüsse.
 

Attachments

  • EditTextDrawable.zip
    9.1 KB · Views: 227

peternmb

Well-Known Member
Licensed User
Longtime User
Super - vielen Dank wieder einmal :) für deine Hilfe und Mühe :sign0188:
Ich glaube ohne deine Hilfe hätte ich B4A das schon längst aufgegeben :sign0098:

PS.: es würde mich aber trotzdem interessieren, warum das edit beim Wechsel der Farbe die Größe ändert - das ist doch nicht normal.
 

klaus

Expert
Licensed User
Longtime User
... warum das edit beim Wechsel der Farbe die Größe ändert - das ist doch nicht normal.
Ja.
So wurde es von Android programmiert.
Ich nehme an dass das 'standard' Hintergrundbild kleiner als die Gesamtgrösse angezeigt wird damit man EditTexts oder auch Buttons direkt nebeneinander und übereinander direkt anhängen kann, mit den äusseren Massen, aber in der Anzeige trotzdem ein kleiner Zwischenraum bleibt.
Wenn man das Hintergrundbild mit ColorDrawable, GradientDrawable ersetzt wird die Gesamtgrösse verwendet. Das ist auch der Fall mit BitmapDrawable, aber hier kann man transparente Flächen benutzen.

Das 'standard' Hintergrundbild ist ein 9 patch image, eine spezielle Bitmapform. Man kann auch seine eigene 9 patch images erstellen.
In dem Beispielprogramm das Ich gesendet habe sind die beiden Bilddateien btnorange.9.png und btnviolet.9.png 9 patch image Dateien.
Android veröffentlicht eine Applikation um Bitmaps in NinePatchImage umzuwandeln.
Siehe auch hier NinePatch Image Tutorial.

Beste Grüsse.
 
Top