Установка ресурса переднего плана программно - PullRequest
0 голосов
/ 05 июня 2019

У меня проблема.Я создал LinearLayout так:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:id="@+id/LayoutProfit"
    android:layout_width="0dp"
    android:layout_weight="20"
    android:layout_height="27dp"
    android:minWidth="0px"
    android:minHeight="50px"
    android:background="#edf0f4"
    android:foreground="@drawable/list_divider_full">

Теперь я хочу программно изменить ресурс переднего плана, но я не знаю как.Я могу изменить ресурс фона следующим образом:

LayoutProfit.SetBackgroundResource(Resource.Drawable.list_divider_top_sides);

Я хочу изменить цвет и границу макета, но это не работает, если я использую оба backgorund, потому что это граница ИЛИ цветтогда ...

Но кто-нибудь может сказать мне, как я могу изменить ресурс Foreground?

1 Ответ

0 голосов
/ 06 июня 2019

Если вы хотите установить цвет переднего плана макета, вы можете использовать:

var LayoutProfit = FindViewById<LinearLayout>(Resource.Id.LayoutProfit);
var drawable = new GradientDrawable();
drawable.SetColor(Resource.Color.colorAccent);
LayoutProfit.Foreground = drawable;

Но если вы хотите установить границу для этого макета, вы должны определить форму в Resources/drawable/border.xml как:

<?xml version="1.0" encoding="utf-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
  <stroke android:width="5dip" android:color="@android:color/holo_red_dark" />
</shape>

Затем используйте его в вашем макете как:

var LayoutProfit = FindViewById<LinearLayout>(Resource.Id.LayoutProfit);
LayoutProfit.SetBackgroundResource(Resource.Drawable.border);
...