Xml风格的动态颜色变化

时间:2016-12-25 20:53:25

标签: android xml dynamic colors styles

我正在尝试制作一个形状,该形状根据列表视图中的项目主题进行更改。这是我需要做的;我圈区enter image description here

周围的细边框

我的xml样式是 cw_full_oval

if let extMovies = defaults.stringArrayForKey("extensionMovies") {
    print("extMovies is \(extMovies)")
} else {
    print("no extMovies to be found here")
}

以下是我需要的布局xml的主要部分

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:bottomLeftRadius="100dp"
        android:bottomRightRadius="100dp"
        android:topLeftRadius="100dp"
        android:topRightRadius="100dp" />
    <!--solid android:color="" / inner side full color-->
    <padding
        android:bottom="0dp"
        android:left="0dp"
        android:right="0dp"
        android:top="0dp" />
    <size
        android:width="100dp"
        android:height="100dp" />
    <stroke
        android:width="1dp"
        android:color="@color/red_200" />
</shape>
enter code here

我从 xml 设置样式时的线性布局图像如下所示

enter image description here

在我的适配器类中,我试图提供我的方法,主题名称和当前的线性布局

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_margin="15dp"
                    android:background="@drawable/cw_full_oval"
                    android:orientation="vertical">

                    <LinearLayout
                        android:layout_margin="10dp"
                        android:background="@drawable/cw_full_oval"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent">

                        <LinearLayout
                            android:id="@+id/lin_lay_item_etkinlik_gl"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:orientation="vertical">

                        </LinearLayout>
                    </LinearLayout>
                </LinearLayout>

我知道这种方法还不够,只是想描述我需要的东西

String nameOfObj = currentActivity.getName();
Util.getInstance(context).setColor(nameOfObj,holder.lin_lay_etkinlik);

最后我的方法返回 enter image description here

我该如何解决?

好吧,我不必遵守我的策略,任何其他实用的解决方案都会受到关注。

1 个答案:

答案 0 :(得分:1)

你只需要使内部布局也循环。

你也有选择:

1 - 使用所需的填充颜色创建圆形绘图。因为你没有使drawable完美圆形(如果你想要,你只需要将形状作为drawable的圆形),你需要在新的drawable中进行相同的配置。

2 - 为每种颜色制作一个可绘制的颜色并在内部填充颜色,您已经完成了它,您只需要取消注释填充颜色部分。