Android中ImageView的最大宽度和高度
Posted
技术标签:
【中文标题】Android中ImageView的最大宽度和高度【英文标题】:Maximum width and height for ImageView in Android 【发布时间】:2011-05-15 07:10:17 【问题描述】:所以我用
设置了一个 ImageViewandroid:maxHeight="100px"
android:maxWidth="250px"
android:minHeight="100px"
android:minWidth="250px"
android:scaleType="centerInside"
此图像视图用于显示从图库或相机中获取的图片。在这两种情况下,图像都不会调整大小以适应图像视图,它只是根据需要拉伸其空间。
知道如何让它保持在这些范围内吗?
<?xml version="1.0" encoding="utf-8"?>
<EditText
android:layout_
android:layout_
android:id="@+id/txtDescription"
android:layout_below="@+id/txtSubject"
android:inputType="textMultiLine"
android:
android:hint="@string/description"></EditText>
<EditText
android:layout_
android:layout_below="@+id/txtDescription"
android:layout_
android:id="@+id/txtMorada"
android:hint="@string/address" />
<ImageButton
android:layout_
android:layout_
android:layout_below="@+id/txtMorada"
android:id="@+id/btGPS"
android:layout_alignParentLeft="true"
android:src="@drawable/ic_menu_compass"></ImageButton>
<ImageView
android:layout_
android:layout_
android:layout_below="@+id/btGPS"
android:layout_marginTop="25px"
android:id="@+id/imgPoint"
android:src="@drawable/google_logo_small"
android:maxHeight="100px"
android:maxWidth="250px"
android:minHeight="100px"
android:minWidth="250px"
android:scaleType="centerInside"></ImageView>
<ImageButton
android:layout_
android:layout_
android:layout_toRightOf="@+id/imgPoint"
android:id="@+id/btGallery"
android:layout_below="@+id/btCamera"
android:src="@drawable/ic_menu_gallery"
android:layout_alignParentRight="true"></ImageButton>
<Button
android:layout_
android:layout_
android:layout_marginTop="10px"
android:id="@+id/btSubmit"
android:layout_below="@+id/btGallery"
android:text="@string/submit"></Button>
<ImageButton
android:layout_
android:id="@+id/btMap"
android:layout_below="@+id/txtMorada"
android:layout_
android:layout_alignParentRight="true"
android:src="@drawable/ic_menu_mapmode"></ImageButton>
<TextView
android:layout_below="@+id/txtMorada"
android:layout_
android:layout_toLeftOf="@+id/btMap"
android:layout_
android:id="@+id/lblNewPointLatitude"
android:text="Latitude"></TextView>
<TextView
android:layout_
android:layout_toLeftOf="@+id/btMap"
android:layout_
android:id="@+id/lblNewPointLongitude"
android:layout_below="@+id/lblNewPointLatitude"
android:text="Longitude"></TextView>
<ImageButton
android:layout_below="@+id/btMap"
android:layout_
android:layout_
android:layout_toRightOf="@+is/imgPoint"
android:id="@+id/btCamera"
android:layout_marginTop="25px"
android:src="@drawable/ic_menu_camera"
android:layout_alignParentRight="true"></ImageButton>
<Spinner
android:layout_
android:id="@+id/spCategoria"
android:layout_
android:prompt="@string/spCategoriaPrompt"></Spinner>
<Spinner
android:layout_
android:id="@+id/spSubcategoria"
android:layout_below="@+id/spCategoria"
android:layout_
android:prompt="@string/spSubcategoriaPrompt"></Spinner>
<EditText
android:layout_
android:layout_below="@+id/spSubcategoria"
android:layout_
android:id="@+id/txtSubject"
android:hint="@string/subject"></EditText>
</RelativeLayout>
</ScrollView>
【问题讨论】:
ImageView 周围的布局是什么?你能发布一个更大的 xml sn-p 吗? 您也应该在 XML 中添加带有缩进的换行符。它是不可读的。我注意到的一件事是在 btCamera TextView 中:您的 layout_toRightOf 说@+is
而不是 @+id
。当然,这不是您的主要问题,但它会影响您的布局。
Android imageview not respecting maxWidth? 的可能重复项
【参考方案1】:
试试adjustViewBounds
属性:
android:adjustViewBounds="true"
【讨论】:
【参考方案2】:除了为宽度和高度设置显式值之外,您还将layout_width
和layout_height
设置为wrap_content
。相反,您应该将 layout_width 和 layout_height 设置为某个数值。另外,请使用 dp 而不是 px。见supporting multiple screen sizes。
【讨论】:
在这种情况下,您不能将 layout_width/height 设置为整数值。【参考方案3】:你试过android:scaleType="fitCenter"吗?此外,不应将视图的尺寸设置为 wrap_content
,正如 Mayra 所指出的那样
【讨论】:
【参考方案4】:尝试包括这个:xmlns:android="http://schemas.android.com/apk/res/android"
示例:
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/imageView"
android:layout_
android:layout_
android:maxHeight="400dp"
android:adjustViewBounds="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:src="@drawable/background_img"
/>
【讨论】:
【参考方案5】:虽然上面已经提到了所有的答案,但需要补充
android:adjustViewBounds="true"
还应注意,如果使用android:background
设置图像,则缩放不起作用。要允许缩放,请使用 src
或 srcCompat
之类的
<!-- Will not work -->
android:background="@drawable/my_image"
<!-- Works -->
android:src="@drawable/my_image"
<!-- Works -->
app:srcCompat="@drawable/my_image"
【讨论】:
以上是关于Android中ImageView的最大宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章