我的imageview声明如下:
<ImageView
android:id="@+id/category_image_top"
android:layout_width="match_parent"
android:layout_height="170dp"
android:maxHeight="170dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:background="@drawable/image_placeholder"
/>
这就是我在asynctask中设置category_image_top的方法(在onPostExecute上)
imageView.setImageBitmap(image);
设置图像后,imageview突然获得4px的余量。但是当我从XML中删除android:background =“@ drawable / image_placeholder”时,一切都很好吗?!
BTW:image_placeholder是一个9补丁图像,如果这有任何区别。
为什么会这样?
更新:我尝试将背景设置为纯色,然后在加载图像时不会出现边距。我也试过放置另一个9补丁图像,当我这样做时,边缘再次出现。所以它必须是背景作为图像
UPDATE2:也许这是一个像这个家伙指出的安卓漏洞? https://stackoverflow.com/a/8340745/581531
答案 0 :(得分:1)
我猜可以认为image_placeholder具有4px透明边距
答案 1 :(得分:1)
行。解决方案被发现,也许它不是最漂亮的,但嘿,它的工作! :)
在我看来,我刚刚添加了一个任意视图,它是我图像的持有者。最重要的是我有我的ImageView所以当图像加载占位符(视图)被覆盖。这是我的观点(或者至少是重要的一部分):
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<View
android:layout_width="match_parent"
android:layout_height="210dp"
android:background="@drawable/image_placeholder"
/>
<ImageView
android:id="@+id/article_image"
android:layout_width="match_parent"
android:layout_height="210dp"
android:adjustViewBounds="true"
android:layout_gravity="center"
android:scaleType="centerCrop"
/>
...
答案 2 :(得分:0)
包含图片视图的元素可能有边距,您检查过吗?
将android:background="@drawable/image_placeholder"
更改为android:src="@drawable/image_placeholder"
同时添加以下内容:android:scaleType="centerCrop"
如果centerCrop不起作用,请尝试列出here列出的其他内容。