Как получить квадратный фон в макете

#android #layout

#Android #макет

Вопрос:

скриншотКак я могу получить Layouts квадратный фон правой стороны. Фоновые изображения уже квадратные, которые я использовал.

Вот мой xml код

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/home_bg_screen"
    android:orientation="vertical">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@ id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/aboutus_icon"/>
        <Button
            android:id="@ id/menu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right|center_vertical"
            android:layout_marginRight="4dp"
            android:background="@drawable/contactus_btn"
            android:text="Menu"
            android:textColor="#FFF"/>
    </FrameLayout>
    <TextView
        android:id="@ id/header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="12dp"
        android:textColor="#FFF"
        android:textSize="20sp"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:paddingLeft="28dp"
        android:paddingRight="28dp"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:baselineAligned="false">
            <RelativeLayout
                android:id="@ id/rel_one"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:layout_marginRight="1dp"
                android:layout_marginBottom="1.7dp"
                android:layout_marginTop="0.7dp"
                android:layout_marginLeft="1dp"
                android:background="@drawable/large_bg">
                <ImageView
                    android:id="@ id/about_image"
                    android:layout_width="150dp"
                    android:layout_height="150dp"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="10dp"
                    android:gravity="center"
                    android:padding="5dp"/>
                <TextView
                    android:id="@ id/about_description"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:layout_centerHorizontal="true"
                    android:layout_below="@ id/about_image"
                    android:layout_marginTop="5dp"
                    android:paddingLeft="5dp"
                    android:singleLine="false"
                    android:textColor="#000"
                    android:textSize="11sp"
                    android:scrollbars="vertical"/>
            </RelativeLayout>
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:orientation="vertical">
                <RelativeLayout
                    android:id="@ id/rel_two"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:background="@drawable/list_selector8">
                    <ImageView
                        android:id="@ id/one_image"
                        android:layout_width="60dp"
                        android:layout_height="50dp"
                        android:layout_centerHorizontal="true"
                        android:layout_marginTop="3dp"
                        android:scaleType="fitXY"/>
                    <TextView
                        android:id="@ id/one"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@ id/one_image"
                        android:layout_centerHorizontal="true"
                        android:gravity="center"
                        android:layout_marginTop="4dp"
                        android:paddingLeft="1dp"
                        android:paddingRight="1dp"
                        android:textColor="#000"
                        android:textSize="11sp"
                        android:maxLines="2"
                        android:scrollbars="vertical"/>
                </RelativeLayout>
                <RelativeLayout
                    android:id="@ id/rel_four"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:background="@drawable/list_selector8">
                    <ImageView
                        android:id="@ id/two_image"
                        android:layout_width="60dp"
                        android:layout_height="50dp"
                        android:layout_centerHorizontal="true"
                        android:layout_marginTop="3dp"
                        android:scaleType="fitXY"/>
                    <TextView
                        android:id="@ id/two"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@ id/two_image"
                        android:layout_centerHorizontal="true"
                        android:gravity="center"
                        android:layout_marginTop="4dp"
                        android:paddingLeft="1dp"
                        android:paddingRight="1dp"
                        android:textColor="#000"
                        android:textSize="11sp"
                        android:maxLines="2"
                        android:scrollbars="vertical"/>
                </RelativeLayout>
                <RelativeLayout
                    android:id="@ id/rel_five"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:background="@drawable/list_selector8">
                    <ImageView
                        android:id="@ id/three_image"
                        android:layout_width="60dp"
                        android:layout_height="50dp"
                        android:layout_centerHorizontal="true"
                        android:layout_marginTop="3dp"
                        android:scaleType="fitXY"/>
                    <TextView
                        android:id="@ id/three"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@ id/three_image"
                        android:layout_centerHorizontal="true"
                        android:gravity="center"
                        android:layout_marginTop="4dp"
                        android:paddingLeft="1dp"
                        android:paddingRight="1dp"
                        android:textColor="#000"
                        android:textSize="11sp"
                        android:maxLines="2"
                        android:scrollbars="vertical"/>
                </RelativeLayout>
            </LinearLayout>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <RelativeLayout
                android:id="@ id/rel_six"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:background="@drawable/list_selector8">
                <ImageView
                    android:id="@ id/six_image"
                    android:layout_width="60dp"
                    android:layout_height="50dp"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="3dp"
                    android:scaleType="fitXY"/>
                <TextView
                    android:id="@ id/six"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@ id/six_image"
                    android:layout_centerHorizontal="true"
                    android:gravity="center"
                    android:layout_marginTop="1dp"
                    android:paddingLeft="1dp"
                    android:paddingRight="1dp"
                    android:textColor="#000"
                    android:textSize="11sp"
                    android:maxLines="2"
                    android:scrollbars="vertical"/>
            </RelativeLayout>
            <RelativeLayout
                android:id="@ id/rel_seven"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:background="@drawable/list_selector8">
                <ImageView
                    android:id="@ id/five_image"
                    android:layout_width="60dp"
                    android:layout_height="50dp"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="3dp"
                    android:scaleType="fitXY"/>
                <TextView
                    android:id="@ id/five"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@ id/five_image"
                    android:layout_centerHorizontal="true"
                    android:gravity="center"
                    android:layout_marginTop="1dp"
                    android:paddingLeft="1dp"
                    android:paddingRight="1dp"
                    android:maxLines="2"
                    android:textColor="#000"
                    android:textSize="11sp"
                    android:scrollbars="vertical"/>
            </RelativeLayout>
            <RelativeLayout
                android:id="@ id/rel_eight"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/list_selector8">
                <ImageView
                    android:id="@ id/four_image"
                    android:layout_width="60dp"
                    android:layout_height="50dp"
                    android:layout_centerHorizontal="true"
                    android:scaleType="fitXY"/>
                <TextView
                        android:id="@ id/four"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@ id/four_image"
                        android:layout_centerHorizontal="true"
                        android:gravity="center"
                        android:paddingLeft="1dp"
                        android:paddingRight="1dp"
                        android:textColor="#000"
                        android:maxLines="2"
                        android:textSize="11sp"
                        android:scrollbars="vertical"/>
            </RelativeLayout>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
  

Ссылка на снимок экрана

Ответ №1:

Самый простой подход, на мой взгляд, состоит в том, чтобы подклассировать макет, который вы хотите выровнять, переопределив onMesure . Для instande:

 public class SquaredLayout extends LinearLayout {

public SquaredLayout(Context context, AttributeSet attrs) {
    super(context, attrs);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, widthMeasureSpec);
}
}
  

Комментарии:

1. Спасибо за 4-d ответ. Можете ли вы, пожалуйста, опубликовать полный код Java?

2. вы можете поместить его в свой xml. Просто не забудьте указать полный пакет: например <my.package.SquaredLayout , вместо того, чтобы LinearLayout

Ответ №2:

Хава, ты пытаешься написать selector.xml чтобы заострить внимание на фоновом режиме cornor? может быть, это вам поможет.