Eu gostaria de arredondar os cantos de uma visualização e também alterar a cor da visualização com base no conteúdo em tempo de execução.
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);
Eu esperava que a configuração de um drawable e as cores se sobreponham, mas isso não acontece. O que eu executar em segundo lugar é o fundo resultante.
Existe alguma maneira de criar essa visualização programaticamente, tendo em mente que a cor de fundo não será decidida até o tempo de execução?
editar: estou apenas trocando entre vermelho e azul agora para teste. Posteriormente, a cor será escolhida pelo usuário.
editar:
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
?