gpt4 book ai didi

java - Android 不同颜色的圆形背景

转载 作者:行者123 更新时间:2023-12-02 10:30:55 26 4
gpt4 key购买 nike

我正在制作一个待办事项应用程序,并使用 RecyclerView 来创建如下所示的多个网格布局:

Grid layout image

我使用背景布局来圆角:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="6dp" />
<corners android:radius="20dp"/>
</shape>

我的问题是,每当我在适配器中动态更改颜色时,如下所示:

public void onBindViewHolder( ViewHolder holder, int position) {
holder.timee.setBackgroundColor(task.get(position).getColor());
holder.timee.setTextColor(Color.WHITE);
holder.grid.setBackgroundColor(Color.WHITE);
holder.namee.setTextColor(task.get(position).getColor());
}

背景颜色似乎忽略了我用背景布局设置的边界,我得到了这个结果:

Background color ignoring boundaries image

让它为 RecycerView 中的每个项目都具有圆角和不同颜色的最佳方法是什么?

最佳答案

您使用的背景“布局”实际上根本不是布局;这是一个drawable资源。这意味着虽然可见边框是圆形的,但 View 本身仍然具有其原始形状。

当您以编程方式设置背景颜色时,它会替换以前具有圆角的可绘制对象并填充整个矩形 View 。为了在这些边界内具有圆角和纯色填充,您将需要修改您的可绘制对象本身。 <solid>标签应该适合这个目的。

要支持多种颜色,您可以为每种颜色拥有单独的可绘制资源(如果只有几个颜色,则很有用),或者您可以在基本可绘制对象上使用不同的色调。其他方法可参见this question .

关于java - Android 不同颜色的圆形背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53618582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com