无需硬编码xml值即可更改对象的宽度和高度

时间:2019-04-26 14:02:53

标签: android xml screen-size

我正在为Android Studio中的android应用创建主页。在layouts文件夹中,有我的主页活动XML文件。主页将包含3个可单击的“框”,它们是CardViews。它们运行正常,但是我正在努力更改CardViews的大小,而无需硬编码XML的宽度和高度(或将来的其他对象)。以便根据不同的屏幕尺寸正确更改尺寸。 在这种情况下,我要增加CardViews的高度。

Capture Receipt and Create Invoice CardViews I want to modify size of.

我正在约束布局内使用线性布局。选择CardViews的layout_width和layout_height以匹配父对象。我已经修改了layout_weight,但这没有得到我想要的结果。 我想增加高度而不增加宽度。

这是要用XML还是代码的Java部分完成?

这是我的主页活动XML代码(没有底部导航栏和“添加项目”部分):

<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".HomePageActivity">

   <LinearLayout
    android:id="@+id/ll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/lightComplimentGrey"
    android:gravity="center|top"
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:layout_editor_absoluteX="0dp"
    tools:layout_editor_absoluteY="0dp">


        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="290dp"
        android:background="@drawable/curved_top"
        android:orientation="horizontal"
        android:paddingBottom="-50dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">


            <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toTopOf="@+id/ll">

                <TextView
                android:id="@+id/currentUserTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="8dp"
                android:layout_marginEnd="188dp"
                android:layout_marginBottom="8dp"
                android:gravity="left"
                android:text="Current User"
                android:textColor="#99E8F3"
                android:textSize="20sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.922"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.352" />

                <TextView
                android:id="@+id/userNameEntryTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:layout_marginEnd="8dp"
                android:layout_marginBottom="8dp"
                android:gravity="left"
                android:hint="Not Signed In"
                android:textColor="#FFFFFF"
                android:textColorHint="#FFFFFF"
                android:textSize="24sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="@+id/currentUser"
                app:layout_constraintTop_toTopOf="parent" />

                <Spinner
                android:id="@+id/changeUserSpinner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="8dp"
                android:backgroundTint="#FFFFFF"
                app:layout_constraintBottom_toBottomOf="@+id/
                app:layout_constraintStart_toEndOf="@+id/userNameEntry"
                app:layout_constraintTop_toTopOf="@+id/currentUserTextView"
                app:layout_constraintVertical_bias="0.558" />

                <ImageButton
                android:id="@+id/menuButton"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                android:layout_weight="4"
                android:background="@drawable/ic_menu_light_blue_24dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.048" />

                <ImageButton
                android:id="@+id/notificationButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="16dp"
                android:layout_marginEnd="16dp"
                android:layout_marginBottom="
                android:background="@drawable/ic_tooLongToPost"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="1.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.0" />

            </android.support.constraint.ConstraintLayout>
        </LinearLayout>

        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="-70dp"
        android:clipToPadding="false"
        android:gravity="center"
        android:orientation="horizontal">


            <android.support.v7.widget.CardView
            android:id="@+id/capture_receipt"
            android:layout_width="0px"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_margin="@dimen/view_margin_normal_screen"
            android:clickable="true"
            android:foreground="?android:attr/selectableItemBackground">

                <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="vertical">

                    <ImageView
                    android:layout_width="64dp"
                    android:layout_height="64dp"
                    android:background="@drawable/circle_background_green"
                    android:padding="10dp"
                    android:src="@drawable/ic_photo_camera_black_24dp" />

                    <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:text="Capture Receipt"
                    android:textStyle="bold" />

                    <View
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:layout_margin="10dp"
                    android:background="@color/lightComplimentGrey" />

                    <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:padding="5dp"
                    android:text="Scan receipt to recognize items"
                    android:textColor="@android:color/darker_gray" />

                </LinearLayout>
            </android.support.v7.widget.CardView>

如何在不进行硬编码的情况下修改高度和宽度(就像对XML进行硬编码时一样)?

0 个答案:

没有答案