我有你在图片上看到的布局。每个ImageView的单元格按宽度和高度设置为相同大小。缩放类型的图像是“fitXY”。目前,所有图像都会根据屏幕大小调整大小,并且通常会进行升级。
我想实现以下行为: set maxSize - 图像的最大宽度和高度。当单元格小于maxSize时,ImageView的行为与“fitXY”类似,但如果单元格大于maxSize,则图像不会进一步放大。我不想拥有不同DPI的图像,而是想要动态调整大图标的大小。
据我所知,不同的屏幕尺寸和分辨率应该有不同的maxSize值。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:orientation="horizontal"
android:background="@drawable/app_bg"
android:weightSum="2"
android:padding="8dp">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2">
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/icon_www"
android:scaleType="fitXY"
android:padding="40dp"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:src="@drawable/icon_fb"
android:layout_weight="1"
android:padding="40dp"
android:scaleType="fitXY"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2">
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:src="@drawable/icon_twitter"
android:layout_weight="1"
android:scaleType="fitXY"
android:padding="40dp"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:src="@drawable/icon_youtube"
android:layout_weight="1"
android:scaleType="fitXY"
android:padding="40dp"/>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:2)
添加android:adjustViewBounds="true"
并更改&#39; android:scaleType =&#34; center&#34;&#39;到android:scaleType="fitCenter"
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/icon_www"
android:scaleType="fitCenter"
android:padding="40dp"
android:adjustViewBounds="true"/>
修改强>
由于android:maxHeight
为0dp而layout_height
为1,因此您的layout_weight
无法正常工作,您将为视图指定特定的高度值。 max_height
和max_width
仅适用于您不具有视图的特定高度和宽度值的情况。将wrap_content
作为layout_height
并删除layout_weight
。同样,通过将layout_width
设为match_parent
,您可以为视图的高度定义特定值。将match_parent
替换为wrap_content
即可。