android - layout_weight 改变图像尺寸

标签 android android-layout

基本上,我在线性布局之一中有 ImageView,当在每个布局上设置权重时,调整大小,布局中的 ImageView 也是如此。问题是 - 只有实际改变宽度的高度保持不变。

为什么会出现问题?我有 customView,我需要将它放在杯子上,因此它需要杯子的 x,y 坐标及其尺寸(宽度和高度)。现在我得到了不同屏幕尺寸的不同宽度。

布局代码:

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

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="3"
        android:orientation="horizontal" >

        <RelativeLayout
            android:id="@+id/rlmainContainer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <ImageView
                android:id="@+id/ivCup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/cup1_r" />
        </RelativeLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1" >
    </LinearLayout>

</LinearLayout>

Archie.bpgc 解决方案(设置layout_height =“0dp”)没有帮助。再设置几张图像,它们的宽度都不成比例:

<?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:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal" >



            <ImageView
                android:id="@+id/ivCup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/cup1_r" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <ImageView
                android:id="@+id/ivCup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/cup1_r" />

    </LinearLayout>

        <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <ImageView
            android:id="@+id/ivCup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/cup1_r" />

    </LinearLayout>

        <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <ImageView
                android:id="@+id/ivCup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/cup1_r" />

    </LinearLayout>    

</LinearLayout>

最佳答案

在设置权重时使layout_height = 0dp。这也是一种优化。

android:layout_height="0dp"

对于两个 LinearLayout。

而且您也不需要 RelativeLayout,因为第一个 LinearLayout 中只有一个 ImageView

关于android - layout_weight 改变图像尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14806028/

相关文章:

android - EditText : NPE in InputConnection. 报告全屏模式

android - 布局参数 : how to put button at bottom

Android布局将一个布局放置在另外两个布局的中间

android - 按钮超出布局时会被挤压

javascript - PhoneGap 上的 SQLite 数据库结果集长度每次都会增加

android - 无法实例化自定义 View 充气器 android.support.v7.app.AppCompatViewInflater

android - 使用 HTML、Javascript 进行移动开发的最佳平台。除了 native 应用程序开发

android - Android 中的标准化屏幕尺寸

android - 与同级 fragment 相比,BottomSheetDialog 中的 SwitchCompat 主题颜色错误

android - android.R.attr.state_checked 的反义词是什么?