Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:表中的相同图像大小不同-仅在未调试时_Android_Image_Android Layout_Android Studio - Fatal编程技术网

Android:表中的相同图像大小不同-仅在未调试时

Android:表中的相同图像大小不同-仅在未调试时,android,image,android-layout,android-studio,Android,Image,Android Layout,Android Studio,我试图显示一个有三行的表。前两个是图像,第三个只是数据。我试着将它们设置为45%、45%、10%的表行权重。。。然而,这从来没有发生过,它总是出现在47%,47%,6%左右 但这与我无法理解的行为相比是微不足道的 图像和数据是异步的,因此使用“可运行”命令填充它们。 问题是第一张图像每次更新都会变大。第二幅图像越来越小。 然而,这里有一个关键点,当我设置断点并暂停它进行调试时,它完全按照我希望的方式工作。它不会改变大小,行高度也不会改变 也就是说,这是我的布局XML: <?xml vers

我试图显示一个有三行的表。前两个是图像,第三个只是数据。我试着将它们设置为45%、45%、10%的表行权重。。。然而,这从来没有发生过,它总是出现在47%,47%,6%左右

但这与我无法理解的行为相比是微不足道的

图像和数据是异步的,因此使用“可运行”命令填充它们。 问题是第一张图像每次更新都会变大。第二幅图像越来越小。 然而,这里有一个关键点,当我设置断点并暂停它进行调试时,它完全按照我希望的方式工作。它不会改变大小,行高度也不会改变

也就是说,这是我的布局XML:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:layout_weight="1"
android:id="@+id/mainscreen">
android:background="#00ff00"
<TableRow
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:id="@+id/img1box"
    android:layout_weight="45"
    android:gravity="center_vertical|center_horizontal">

    <ImageView
        android:contentDescription="image1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/img1"
        android:src="@drawable/icon"/>
</TableRow>

<TableRow
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:id="@+id/img2box"
    android:layout_weight="45"
    android:gravity="center_vertical|center_horizontal">

    <ImageView
        android:contentDescription="image2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/img2"
        android:src="@drawable/icon" />
</TableRow>

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="10"
        android:id="@+id/dataholder"
        android:gravity="center_vertical|center_horizontal">

        <TextView
            android:id="@+id/statusbox"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="#000000"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:layout_gravity="center"/>
    </TableRow>
</TableLayout>
重复。。。当我在上面的一个函数中设置断点并恢复执行时,每次它发布新图像时,两个图像的大小都相同。这就是我想要发生的

但是如果我不设置断点,每次发布一个新图像时,表顶的行就会越来越大。顶部图像占表格(屏幕)的50%以上,底部图像和表格数据行越来越小

本质上,我相信Android Studio是在嘲笑我,因为就像你乘坐的汽车里的拨浪鼓一样,当有人在关注问题时,它不会发出拨浪鼓

(我包括了一个“android studio”标签,因为在调试器中暂停它会导致问题消失)

任何建议都将不胜感激


-Scotty

表格布局似乎并没有严格地考虑其权重。例如,当您将
ImageView
添加到
TableRow
中时,无论是否使用
src
,其呈现方式都会略有不同。我还用两张不同尺寸的图片验证了这一点,图片越大的那一行完全超过了图片越小的那一行

解决方法是不要使用
表格布局
。如果你不想使用像
GridView
这样的东西,我建议你坚持使用
LinearLayout
。你可以用完全相同的方式使用它。您只需指定其
android:orientation=“horizontal | vertical”
属性,而无需区分
TableRow
(水平类型)或
TableLayout
(垂直类型)

下面是一个直观的对比:

因此,对于您提供的布局XML,这将成为:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:weightSum="100"
android:background="#00ff00"
android:id="@+id/mainscreen">
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:id="@+id/img1box"
    android:layout_weight="45"
    android:gravity="center_vertical|center_horizontal">

    <ImageView
        android:contentDescription="image1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/img1"
        android:src="@drawable/icon"/>
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:id="@+id/img2box"
    android:layout_weight="45"
    android:gravity="center_vertical|center_horizontal">

    <ImageView
        android:contentDescription="image2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/img2"
        android:src="@drawable/icon" />
</LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="10"
        android:id="@+id/dataholder"
        android:gravity="center_vertical|center_horizontal">

        <TextView
            android:id="@+id/statusbox"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="#000000"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:layout_gravity="center"/>
    </LinearLayout>
</LinearLayout>

这很有效。它还消除了缩放位图的需要。图像显然是自动调整到LinearLayout ID的高度。谢谢。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:weightSum="100"
android:background="#00ff00"
android:id="@+id/mainscreen">
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:id="@+id/img1box"
    android:layout_weight="45"
    android:gravity="center_vertical|center_horizontal">

    <ImageView
        android:contentDescription="image1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/img1"
        android:src="@drawable/icon"/>
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:id="@+id/img2box"
    android:layout_weight="45"
    android:gravity="center_vertical|center_horizontal">

    <ImageView
        android:contentDescription="image2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/img2"
        android:src="@drawable/icon" />
</LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="10"
        android:id="@+id/dataholder"
        android:gravity="center_vertical|center_horizontal">

        <TextView
            android:id="@+id/statusbox"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="#000000"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:layout_gravity="center"/>
    </LinearLayout>
</LinearLayout>