Я пытаюсь создать форму, которая изменяется в соответствии с темой элемента в списке. Вот что мне нужно сделать; тонкая рамка вокруг моего круга области Динамическое изменение цвета Xml Style
Мой стиль XML является cw_full_oval
<?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, что мне это нужно в форме
<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>
Изображение моих линееклайтов, как показано ниже, когда я устанавливаю стили отxml
В моем классе адаптера Я пытаюсь дать мой метод, название темы и текущий LinearLayout
String nameOfObj = currentActivity.getName();
Util.getInstance(context).setColor(nameOfObj,holder.lin_lay_etkinlik);
Этот метод не является достаточно, я знаю, просто пытаюсь описать, что Мне нужно
public void setColor(String name, LinearLayout linlay){
switch (name){
case "Sinema":
linlay.setBackgroundResource(R.color.sinema);
break;
case "Piknik":
linlay.setBackgroundResource(R.color.piknik);
break;
case "Futbol":
linlay.setBackgroundResource(R.color.futbol);
break;
case "Gezi":
linlay.setBackgroundResource(R.color.gezi);
break;
case "Yemek":
linlay.setBackgroundResource(R.color.yemek);
break;
case "Sohbet":
linlay.setBackgroundResource(R.color.sohbet);
break;
case "Cay":
linlay.setBackgroundResource(R.color.cay);
break;
case "Toplantı":
linlay.setBackgroundResource(R.color.sinema);
break;
default:
linlay.setBackgroundResource(R.color.genel);
break;
}
}
И, наконец, мой метод возвращает меня
Как это исправить?
Ну, я не должен повиноваться своей стратегии, любые другие решения, основанные на пратиках, будут оцениваться.
Я исправил свою потребность. То, как вы описали, тоже прошло из моего разума. Я создал несколько круглых изображений и импортировал их в мой drawable, так что внутри цветов, которые я ввел изображения, но хотел бы знать, есть ли стиль управления x y yo, который будет более эффективным. – Sam