我是一个新的android程序员。我想用PullToRefreshListView
显示图像,但我发现ImageView
的左侧和右侧都有空格。我尝试了一些解决方案" ImageView空白区域"包括使用adjustViewBounds="true"
和scaleType
,但失败了。
以下代码是我的列表单元格布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/userPortrait"
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/ic_launcher"
/>
<TextView
android:id="@+id/userName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<TextView
android:id="@+id/timeAgo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20px"
android:layout_marginRight="5px"
/>
</LinearLayout>
<!-- here is my imageControl -->
<ImageView
android:id="@+id/imageUrl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
/>
</LinearLayout>
图像来自服务器,因此我在imageView.setImageBitmap
的代码中添加了图像源。
我也尝试使用imageView.setBackground(drawable)
,实际上左侧和右侧没有空格,但高度不正确,不依赖于宽高比。
任何人都可以帮助我吗?提前谢谢。
答案 0 :(得分:2)
如果布局后ImageView
的宽高比与图像本身的宽高比不同,则必须做出选择:
ImageView
留下一些空间(在您的情况下,左右),请使用android:scaleType="fitCenter"
。ImageView
并裁剪图片(在您的情况下,在顶部和底部),请使用android:scaleType="cropCenter"
ImageView
尺寸,请使用android:scaleType="fitXY"
。以下是android:adjustViewBounds="true"
的工作原理:当ImageView
“固定”的一个维度(例如match_parent
或240dp
等)和另一个维度“灵活”时(例如wrap_content
),设置android:adjustViewBounds="true"
会使ImageView
布局使wrap_content
维度恰好与源图像的宽高比相匹配。
由于match_parent
的两个维度都有ImageView
,android:adjustViewBounds="true"
不会产生任何影响。