2012-09-11 40 views
0

我试图让徽标具有相同的缩放比例,无论父视图的大小如何。现在,徽标垂直缩小,但没有水平,导致徽标看起来很尴尬。我希望它可以同时缩放x和y,这样它就可以保持它的形式而不会受到sm or或绷紧的外观。如何在Android的ImageView中同样缩放图像X和Y?

我已经尝试过各种scaleTypes,但他们迄今为止似乎没有帮助。

XML代码对于按钮:

<ImageView 
       android:id="@+id/logo" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:layout_toRightOf="@id/title" 
       android:background="@android:color/transparent" 
       android:src="@android:color/transparent" /> 

完整的XML代码(给定的上下文):

<RelativeLayout 
      android:id="@+id/menu" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="30" 
      android:background="@android:color/transparent" 
      android:baselineAligned="false" > 

      <TextView 
       android:id="@+id/title" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@android:color/transparent" 
       android:gravity="right|bottom" 
       android:shadowColor="@android:color/transparent" 
       android:text="THE BLIND GOAT" 
       android:textColor="@android:color/transparent" 
       android:textSize="24dp" 
       android:textStyle="bold|italic" 
       android:typeface="sans" /> 

      <Button 
       android:id="@+id/help" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/title" 
       android:background="@android:color/transparent" 
       android:clickable="false" 
       android:paddingBottom="0dp" 
       android:paddingLeft="2dp" 
       android:paddingRight="2dp" 
       android:paddingTop="0dp" 
       android:text="HELP" 
       android:textColor="@android:color/transparent" 
       android:textSize="9dp" 
       android:textStyle="bold" 
       android:typeface="monospace" /> 

      <Button 
       android:id="@+id/settings" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_toRightOf="@id/help" 
       android:layout_below="@id/title" 
       android:background="@android:color/transparent" 
       android:clickable="false" 
       android:paddingBottom="0dp" 
       android:paddingLeft="2dp" 
       android:paddingRight="2dp" 
       android:paddingTop="0dp" 
       android:text="SETTINGS" 
       android:textColor="@android:color/transparent" 
       android:textSize="9dp" 
       android:textStyle="bold" 
       android:typeface="monospace" /> 

      <Button 
       android:id="@+id/logout" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_toRightOf="@id/settings" 
       android:layout_below="@id/title" 
       android:background="@android:color/transparent" 
       android:clickable="false" 
       android:paddingBottom="0dp" 
       android:paddingLeft="2dp" 
       android:paddingRight="2dp" 
       android:paddingTop="0dp" 
       android:text="LOGOUT" 
       android:textColor="@android:color/transparent" 
       android:textSize="9dp" 
       android:textStyle="bold" 
       android:typeface="monospace" /> 

      <Button 
       android:id="@+id/profile" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/settings" 
       android:background="@android:color/transparent" 
       android:clickable="false" 
       android:textColor="@android:color/transparent" 
       android:textSize="15dp" 
       android:textStyle="bold" 
       android:typeface="serif" /> 

      <ImageView 
       android:id="@+id/logo" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:layout_toRightOf="@id/title" 
       android:background="@android:color/transparent" 
       android:src="@android:color/transparent" 
       android:scaleType="centerCrop" /> 
     </RelativeLayout> 
+0

尝试'android:scaleType =“centerInside”' –

+0

是的,这是我尝试过的许多scaleTypes之一,没有运气。谢谢。 – jrquick

+0

我很抱歉误会。我还没有看到你的评论,可能我们刚刚在同一时间写过。我已经删除了答案。美好的一天 –

回答

0

您的图片显示是由两个因素决定:

您的ImageView的大小(你可以把它想象成一个框架或画布,图像可以绘制到它上面),它是位置。如果ImageView很小,则该图像只能填充该空间量。

第二个因素是scaleType,其描述here。如果您通过它的scaleType属性告诉ImageView要使用“中心”,它将从图像原始大小的中心绘制。如果您使用scaleType“fit_center”,图像将按比例自动缩放以适应ImageView(不会被拉伸或压扁)。

希望有帮助!

相关问题