Ich möchte die Ecken einer Ansicht abrunden und die Farbe der Ansicht basierend auf dem Inhalt zur Laufzeit ändern.
TextView v = new TextView(context);
v.setText(tagsList.get(i));
if(i%2 == 0){
v.setBackgroundColor(Color.RED);
}else{
v.setBackgroundColor(Color.BLUE);
}
v.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
v.setPadding(twoDP, twoDP, twoDP, twoDP);
v.setBackgroundResource(R.drawable.tags_rounded_corners);
Ich hatte gehofft, ein Zeichen zu setzen und die Farbe würde sich überlappen, aber das tun sie nicht. Was auch immer ich als zweites ausführe, ist der resultierende Hintergrund.
Gibt es eine Möglichkeit, diese Ansicht programmgesteuert zu erstellen, wobei zu berücksichtigen ist, dass die Hintergrundfarbe erst zur Laufzeit festgelegt wird?
edit: Ich wechsle jetzt nur zum Testen zwischen Rot und Blau. Später kann der Benutzer die Farbe auswählen.
bearbeiten:
tags_rounded_corners.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
android:bottomRightRadius="2dp"
android:bottomLeftRadius="2dp"
android:topLeftRadius="2dp"
android:topRightRadius="2dp"/>
</shape>
tags_rounded_corners
?