我想绕过视图的各个角落,并在运行时根据内容更改视图的 colored颜色 .

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);

我希望设置一个可抽屉和 colored颜色 会重叠,但它们不是.无论我第二次执行的是哪一个,都是结果背景.

有没有办法以编程方式创建这个视图,记住背景 colored颜色 要到运行时才能确定?

编辑:我现在只是在红色和蓝色之间切换以进行测试.稍后, colored颜色 将由用户 Select .

编辑:

标记为圆角.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>

推荐答案

检索可绘制的背景并设置其 colored颜色 ,而不是setBackgroundColor:

v.setBackgroundResource(R.drawable.tags_rounded_corners);

GradientDrawable drawable = (GradientDrawable) v.getBackground();
if (i % 2 == 0) {
  drawable.setColor(Color.RED);
} else {
  drawable.setColor(Color.BLUE);
}

此外,您还可以在tags_rounded_corners.xml内定义填充:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
  <corners android:radius="4dp" />
  <padding
    android:top="2dp"
    android:left="2dp"
    android:bottom="2dp"
    android:right="2dp" />
</shape> 

Android相关问答推荐

保护所有程序包文件和类

如何将我的Android应用程序(Kotlin)中的图像分享给其他应用程序?

看不到选项菜单栏

如何正确创建可拖动的浮动视图?

如何在jetpack compose中使可组合的屏幕zoom 到不同的手机(屏幕)尺寸?

任务:app:kaptGenerateStubsDebugKotlin执行失败. > 'compileDebugJavaWithJavac' 任务(当前目标是 1.8)

Gradle在我的Android Compose项目中继续推广依赖版本

当 Firebase Firestore 发生变化时,Kotlin ViewModel 不会更新

为一组闪烁的可组合项制作动画,控制同步/定时

只能从同一个库组内调用成功(引用groupId=androidx.work from groupId=My Composable)

java.lang.ExceptionInInitializerError -- 原因:java.lang.NullPointerException

组成不重叠的元素

Jetpack 组合千位分隔符视觉转换,也适用于小数

viewModel 的可变值状态不起作用

Android Jetpack Compose - 每次文本字段值更改时,可组合函数都会重新组合

Android 12 通过包管理器中断 APK 安装?

如何在 Android 上移动 EditText 上的图标?

Android - 水平(从右到左)圆形背景 colored颜色 过渡

如何在 Android Studio 中使用 Github Copilot?

如何在 Jetpack Compose 中将 NavigationRail 的内容居中