Я хотел бы создать квадрат со скругленными углами, добавить цвет фона внутри фигуры и придать ему цвет границы, как показано на следующем рисунке:
Но я могу достичь этого только:
У меня есть список цветов, которые необходимо добавить для каждого из квадратов с закругленными углами и его динамических данных, чтобы любое количество цветов было получено из API и отображено в представлении реселлера. Но когда я изменяю фон или цвет фона макета, появляется цвет, и граница фона исчезает.
Вот мой код для xml:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp">
<FrameLayout
android:id="@+id/colorframe"
android:layout_width="72dp"
android:layout_height="72dp"
android:background="@drawable/status_color_white_square"
android:layout_centerInParent="true"
android:onClick="@{()->viewModel.onItemClick()}">
<com.monstarlab.instantmac.ui.custom.IMTextView
android:id="@+id/captionET"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="A"
android:visibility="@{safeUnbox(viewModel.isSelected ? View.VISIBLE:View.GONE )}" />
</FrameLayout>
</RelativeLayout>
Drawable с рамкой:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:bottomRightRadius="6dp"
android:bottomLeftRadius="6dp"
android:topLeftRadius="6dp"
android:topRightRadius="6dp"/>
<stroke android:width="1dp"
android:color="#e8e9ea"/>
Java-код в методе просмотра адаптера onBind () метод:
final StatusColor color = colorlist.get(position);
statusColorViewModel = new StatusColorViewModel(color, this);
mBinding.setViewModel(statusColorViewModel);
mBinding.colorframe.setBackgroundColor(ContextCompat.getColor(mContext, color.getColor()));
Как мне добиться изменения цвета, не затрагивая границы?