我想用两个不同部分的背景创建布局,上半部分将具有不同的背景颜色,下半部分将具有不同的背景颜色

时间:2020-02-20 14:08:10

标签: android android-layout android-view xml-drawable

外部视图也应具有圆角。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ffffff"></solid>
    <corners android:radius="10dp" />
    <stroke
        android:width="@dimen/dimen_1"
        android:color="#1877ee" />
</shape>

codezlab card image

3 个答案:

答案 0 :(得分:0)

为什么不只是在另一个布局上使用一个布局?

例如,总体上有一个父线性布局和两个权重相等且背景不同的子线性布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="2"> 

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="vertical"
    android:background="#FFEB3B">
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="vertical"
    android:background="#CC2323">
</LinearLayout>

</LinearLayout>

enter image description here

答案 1 :(得分:0)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:background="@drawable/round_corners"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:weightSum="2"> 

    <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_weight="1"
      android:orientation="vertical"
      android:background="@color/upper_one"> //code for layout for adjusting height </LinearLayout>

   <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_weight="1"
     android:orientation="vertical"
     android:background="@color/lower_color"> //code for layout for adjusting height</LinearLayout>
</LinearLayout>

您可以固定高度或将包装内容用于高度,并在linearlayouts内调整视图高度

答案 2 :(得分:0)

也许您可以使用自定义可绘制对象:

使用以下代码制作新的可绘制对象(border_up.xml):

<corners android:topLeftRadius="10dp"
    android:topRightRadius="10dp"
    android:bottomLeftRadius="0dp"
    android:bottomRightRadius="0dp" />
<solid
    android:color="@color/colorPrimary"/>

和border_down.xml:

<corners android:topLeftRadius="0dp"
    android:topRightRadius="0dp"
    android:bottomLeftRadius="10dp"
    android:bottomRightRadius="10dp" />
<solid
    android:color="@color/colorAccent"/>

在布局中,使用上面的drawable使其成为线性布局或textview:

<LinearLayout
    android:weightSum="2"
    android:orientation="vertical"
    android:layout_width="120dp"
    android:layout_height="200dp"
    android:layout_marginTop="50dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textColor="@color/colorWhite"
        android:gravity="center_horizontal|center_vertical"
        android:background="@drawable/border_up"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/colorWhite"
        android:gravity="center_horizontal|center_vertical"
        android:background="@drawable/border_down"
        android:layout_weight="1"
        android:text="TextView" />
</LinearLayout>

enter image description here