... 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.