今天在无聊写web时候 朋友问了我一个问题,当时不知道问的是啥,回答的也不是很清晰 后来总结后发现是imagerview显示的问题 这个问题大家估计也有遇到过。
问题:我们在用gridview展示图片的时候,服务器返回的图片并有没有响应的处理也就是说这些图片 在展示的时候不会相同宽高展示 并且gridview的边框也有很多空白处;
解决:首先我们给出gridview属性代码
<span style="font-size:18px;"><GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"//每列宽度 这里设置为90根据自己情况设置
android:numColumns="auto_fit"//每列个数 这里设置列数为自动
android:verticalSpacing="10dp"//垂直边距
android:horizontalSpacing="10dp"//水平边距
android:stretchMode="columnWidth"//缩放与列宽大小同步
android:gravity="center"
/></span>
设置属性代码 我们在这里通过 columnWidth 可以控制 gridview的itme宽度 strechMode="columnWidth"这个可缩放与列宽大小同步,切等比例把空余的位置分配给每一列。
其次是ImageView属性代码
<span style="font-size:18px;"> <ImageView
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="150dp"
android:layout_gravity="center"//图片居中显示
android:scaleType="fitXY"//把图片按照指定的大小在View中显示
/></span>
这里关键的来了 当我们把图片固定住以后我们给图片添加上android:scaleType="fitXY"这个属性图片就会根据imageview设置的宽高自动截取,拉伸。
下面是原理测试:(有兴趣的可以看看)
在这里我前辈已经做出了关于android:scaleType="fitXY"的测试 查看测试
我也简单描述一下:
android:scaleType=""
属性1: CENTER
在视图中使图像居中,不执行缩放。 在 XML 中可以使用的语法: android:scaleType="center"。
CENTER_CROP
均衡的缩放图像(保持图像原始比例),使图片的两个坐标(宽、高)都大于等于 相应的视图坐标(负的内边距)。图像则位于 视图的中央。 在 XML 中可以使用的语法:android:scaleType="centerCrop"。
CENTER_INSIDE
均衡的缩放图像(保持图像原始比例),使图片的两个坐标(宽、高)都小于等于 相应的视图坐标(负的内边距)。图像则位于视图的中央。 在 XML 中可以使用的语法:android:scaleType="centerInside"。
FIT_CENTER
把图片按比例扩大(缩小)到View的宽度,居中显示
5:
FIT_END
把图片按比例扩大(缩小)到View的宽度,显示在View的下部分位置
FIT_START
把图片按比例扩大(缩小)到View的宽度,显示在View的上部分位置
FIT_XY
把图片按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满View.
MATRIX
绘制时,使用图像矩阵方式缩放。图像矩阵可以通过 setImageMatrix(Matrix) 设置。
结束语:感觉大家支持,有些可能个人理解与前辈们有差异可以留言 会及时进行更改。