如何根据layout_alignTop和layout_alignBottom缩放Android ImageView宽度

时间:2013-12-02 22:32:49

标签: android imageview scale measure

我希望有一个简单的播放器视图,包含图像,名称和状态。该图片将通过Google +加载。

我遇到的问题是,对于大图像,我的ImageView太宽了,无法将我的文本推到视线之外。

以下示例显示了它的外观: https://dl.dropboxusercontent.com/u/11037539/unwanted_padding.png

布局:     

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/playerPane"
    android:background="@color/player2">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/playerName"
        android:layout_alignBottom="@+id/playerStatus"
        android:id="@+id/playerImage"
        android:src="@drawable/ic_contact_picture"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/playerImage"
        android:id="@+id/playerName"
        android:text="Player"
        android:textColor="@android:color/black"
        android:singleLine="true"
        android:textStyle="bold"
        android:paddingTop="@dimen/player_padding"
        android:paddingBottom="@dimen/player_padding"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/playerName"
        android:layout_alignLeft="@+id/playerName"
        android:id="@+id/playerStatus"
        android:text="status"
        android:singleLine="true"
        android:paddingBottom="@dimen/player_padding" />
</RelativeLayout>

我已经尝试了所有ImageView.scaleTypes,但到目前为止没有任何作用..

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:0)

您只需要定义宽度即可。它应该解决它。所以改变这一行

类似于:

   <ImageView
        android:layout_width="75dp" //OR WHATEVER LOOKS BEST

答案 1 :(得分:0)

当imageview的大小小于图像时,ScaleType才真正有用。如前所述,设置大小,然后您可以使用scaleType来修复图像在现在较小的区域内的缩放方式。