安卓ImageView如何使其占满整个屏幕宽度

3

我的xml如下所示

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF">

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TableRow android:layout_weight="1" android:gravity="center">
        <ImageView android:layout_height="200dp"
            android:layout_width = "wrap_content"
            android:src="@drawable/saltnpepper"                
            android:scaleType="centerInside" />
    </TableRow>

     <TableRow android:layout_weight="3" >
    <ListView android:id="@+id/list1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
    >

    </ListView>
</TableRow>
<TableRow android:layout_weight="1" android:gravity="center">
    <ImageView android:layout_height="100dp"
            android:layout_width = "wrap_content"
            android:src="@drawable/halal"
            android:scaleType="centerInside"/>
</TableRow>
</TableLayout>

我的屏幕目前是这样的:

enter image description here

我想要让Saltnpepper图片扩展到整个屏幕宽度,我已经尝试将ImageViewlayout_height设置为0dp,但是图像就消失了。 我也尝试过将它的layout_width设置为match_parent,但没有起作用。

另外,我想要给ListView添加一些边距,但如果我对ListView元素添加marginRightmarginLeft,整个table_layout都会移动。


android:layout_width = "match_parent" 这样可以吗?对于列表视图,尝试使用 paddingLeft 和 paddingRight。 - X3Btel
<ImageView android:layout_height="200dp" android:layout_width = "match_parent" android:src="@drawable/saltnpepper" android:scaleType="fitxy" /> - Adeel Turk
谢谢Adeel,它确实起作用了!只是现在图像被拉伸了,也许我应该将其放在背景中。 - Samra
4个回答

1
在您的ImageView上将布局宽度设置为match_parent。此外,将ImageView的背景颜色设置为某些颜色,以便您可以看到它实际占用了多少空间。从那里开始,您想使用scaleType来调整(裁剪/适配等)图像以适应ImageView的空间。

1
使用下面的代码...并尝试它...
android:layout_width = "match_parent"
 android:paddingLeft="10dp"
 android:paddingRight="10dp"
 android:paddingTop="10dp"
 android:adjustViewBounds="true"

最终代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF">

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TableRow android:layout_weight="1" android:gravity="center">
            <ImageView android:layout_height="200dp" 
                android:layout_width = "match_parent"
                android:src="@drawable/saltnpepper"
                android:paddingLeft="10dp"
                 android:paddingRight="10dp"
                  android:paddingTop="10dp"
              android:adjustViewBounds="true"
                android:scaleType="centerInside" />
        </TableRow>

         <TableRow android:layout_weight="3" >
        <ListView android:id="@+id/list1"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
        >

        </ListView>
    </TableRow>
    <TableRow android:layout_weight="1" android:gravity="center">
        <ImageView android:layout_height="100dp"
                android:layout_width = "wrap_content"
                android:src="@drawable/halal"
                android:scaleType="centerInside"/>
    </TableRow>
    </TableLayout>

0

将图像视图的宽度设置为match_parent,高度设置为wrap_content,为了保持纵横比,您可以使用adjustViewBounds设置为TRUE。


-1

我尝试了所有的解决方案,但只有一件事起作用了,另一件事情却变得扭曲了。我尝试了 Adeel Turk 的 fitXY 解决方案,它立即让我的图像适应屏幕,但图像太过拉伸,所以现在我把我的图像作为背景,这给了我很好的结果。

这是我的 XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
>

<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"       
android:background="@drawable/saltnpepper">
<TableRow android:layout_weight="1" android:gravity="center">
   <TextView android:layout_height="200dp"/>
</TableRow>

 <TableRow android:layout_weight="4" >
<ListView android:id="@+id/list1"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
>

</ListView>
</TableRow>
<TableRow android:layout_weight="1" android:gravity="center">
<ImageView android:layout_height="100dp"
        android:layout_width = "wrap_content"
        android:src="@drawable/halal"
        android:scaleType="centerInside"/>
</TableRow>
</TableLayout></LinearLayout>

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接