Android ImageView 展开整个屏幕的宽度
Android ImageView to expand the whole width of screen
我的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>
我的屏幕目前是这样的:
我希望 Saltnpepper
图像扩展到整个屏幕宽度,我尝试将 ImageView
的 layout_height
设置为 0dp
但图像随后消失了。我也试过它的 layout_width
作为 match_parent
,但它没有用
此外,我想为 ListView
添加一些边距,但是如果我将 marginRight
或 marginLeft
添加到 ListView
,整个 table_layout
都会移动元素.
在您的 ImageView
上将布局宽度设置为 match_parent
。此外,将 ImageView
的背景颜色设置为某种颜色,以便您可以看到 space 它实际占用了多少。从那里,您想使用 scaleType
将图像整形 (crop/fit/etc) 到 ImageView 的 space。
将图像视图宽度设置为 match_parent,将高度设置为 wrap_content,要保持纵横比,您可以使用将 adjustViewBounds 设置为 TRUE。
使用下面的代码....并尝试...
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>
所以我尝试了所有的解决方案,但一个有效,另一个被扭曲了。我尝试了 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>
我的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>
我的屏幕目前是这样的:
我希望 Saltnpepper
图像扩展到整个屏幕宽度,我尝试将 ImageView
的 layout_height
设置为 0dp
但图像随后消失了。我也试过它的 layout_width
作为 match_parent
,但它没有用
此外,我想为 ListView
添加一些边距,但是如果我将 marginRight
或 marginLeft
添加到 ListView
,整个 table_layout
都会移动元素.
在您的 ImageView
上将布局宽度设置为 match_parent
。此外,将 ImageView
的背景颜色设置为某种颜色,以便您可以看到 space 它实际占用了多少。从那里,您想使用 scaleType
将图像整形 (crop/fit/etc) 到 ImageView 的 space。
将图像视图宽度设置为 match_parent,将高度设置为 wrap_content,要保持纵横比,您可以使用将 adjustViewBounds 设置为 TRUE。
使用下面的代码....并尝试...
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>
所以我尝试了所有的解决方案,但一个有效,另一个被扭曲了。我尝试了 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>