我有一个listview,其项目包含左侧联系人的头像。在剩余空间中,有两行文本,第一行包含人名,第二行包含电子邮件地址(或其他任何文本)。
我想设置列表项的布局,以便:
头像图像位于视图的最左侧。 左侧没有填充。
列表项的高度仅由两行文字的高度决定。无论图像是更大还是更小,imageview都必须匹配此高度。
图片视图的顶部或底部可能没有填充
即使图像本身是矩形,imageview也必须始终为正方形。在这种情况下,图像应该“缩放”以填充整个正方形,可以垂直或水平裁剪,但纵横比必须保持不变。
这是来自ICS Messaging应用程序的屏幕截图,该应用程序符合所有这些标准:
我已经阅读了几个涉及android:scaleType
的SO主题,尝试了scaleType
,adjustViewBounds
和wrapContent
/ match_parent
设置的多种组合,但我从来没有对的。有人可以帮忙吗?
以下是一些简化的XML布局,可以作为起点:
<!-- The avatar -->
<ImageView
android:id="@+id/contactImageView"
android:layout_width="???"
android:layout_height="???"
android:layout_alignParentLeft="true" />
<!-- The 2-row textual layout -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/contactImageView"
android:orientation="vertical" >
<!-- First row -->
<TextView
android:id="@+id/nameTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<!-- Second row -->
<TextView
android:id="@+id/emailTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
答案 0 :(得分:0)
如果你修改ImageView的宽度和高度并将ScaleType设置为centerCrop,你应该拥有你想要的。
<ImageView
android:id="@+id/contactImageView"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:scaleType="centerCrop" />