Я создал 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);
Я хочу изменить цвет и границу макета, но это не работает, если я использую оба фона, потому что тогда это граница ИЛИ цвет...
Итак, как я могу изменить ресурс переднего плана?





Если вы хотите установить цвет переднего плана макета, вы можете использовать:
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);