安卓ImageButton缩放并保持宽高比

7
我有一个屏幕需要进行布局...
基本上,我正在尝试在屏幕上垂直均匀分布4个ImageButton对象... 我使用了这个 这里 来平均分配项目,但现在我很难让图片按比例缩放并保持纵横比... 如果我使用 scaleType="centerInside",它们不会缩放,如果我使用 "fitXY",它们就无法保持纵横比... 这是布局的样子:

enter image description here

这是代码:
    <LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:layout_margin="0dp"
  android:padding="0dp"
  android:orientation="vertical"
  android:weightSum="5"
  >


        <ImageButton android:id="@+id/share_song" 
            android:layout_width="fill_parent" android:text=""
            android:layout_marginLeft="0dp"
            android:layout_marginTop="15dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:gravity="left" 
            android:src="@drawable/share_song_button_sel"
            android:adjustViewBounds="true"
            android:background="#0000"
            android:scaleType="fitXY"
          android:layout_height="0dp"
          android:layout_weight="1"
            />
        <Button 
            android:layout_width="wrap_content" 
            android:text="" android:id="@+id/tag_a_song"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="10dp"
            android:layout_marginRight="0dp"
            android:layout_marginBottom="5dp"
            android:gravity="right" 
            android:layout_gravity="right"
            android:background="@drawable/song_check_in_button_sel"
          android:layout_height="0dp"
          android:layout_weight="1"
            />
        <Button android:id="@+id/match_button" 
            android:layout_width="wrap_content" android:text=""
            android:layout_marginLeft="0dp"
            android:layout_marginTop="10dp"
            android:layout_marginRight="0dp"
            android:layout_marginBottom="5dp"
            android:gravity="left" 
            android:background="@drawable/music_match_button_sel"
          android:layout_height="0dp"
          android:layout_weight="1"
            />
        <Button android:id="@+id/friends_button" 
            android:layout_width="wrap_content" android:text=""
            android:layout_marginLeft="0dp"
            android:layout_marginTop="10dp"
            android:layout_marginRight="0dp"
            android:layout_marginBottom="5dp"
            android:gravity="right" 
            android:layout_gravity="right"
            android:background="@drawable/my_friends_music_button_sel"
          android:layout_height="0dp"
          android:layout_weight="1"
            />

        <LinearLayout
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="0dp"
          android:layout_weight="1"
          android:orientation="horizontal"
          android:layout_marginRight="0dp"
          android:layout_marginLeft="0dp"
          android:layout_marginTop="0dp"
          android:padding="0dp" 
          >
        <LinearLayout
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="65dp"
          android:orientation="horizontal"
          android:layout_marginRight="0dp"
          android:layout_marginLeft="0dp"
          android:layout_marginTop="0dp"
          android:padding="0dp" 
          android:layout_gravity="bottom"
          >
        <ImageView android:src="@drawable/trending_bar"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_gravity="top"
          android:layout_marginRight="0dp"
          android:layout_marginLeft="0dp"
          android:layout_marginTop="10dp"
          android:scaleType="fitXY"/>

            </LinearLayout>
        </LinearLayout> 

</LinearLayout>

希望有人能够帮忙。

这段内容与IT技术无关。
1个回答

7

将ImageButton的宽度设置为fill_parent,并使用fitStart缩放类型适用于靠左边缘的图像,以及fitEnd适用于右边的图像。至少对于您的示例图像来说应该可以解决问题。如果图像的比例宽度超过屏幕宽度,则可能会出现一些间距问题,但这应该对您有所帮助。


非常感谢您的快速回复...我尝试了那个方法,但它不能将图像放大...而且,如果屏幕太小,它也无法将其缩小。 - john ellis
虽然我一直在使用所见即所得编辑器来检查它...也许我不应该信任它。 - john ellis
是的,在我看来,不要相信它在这方面的表现,太糟糕了。建议使用模拟器或者真机测试。 - Kevin Coppock
1
哦,是的...太疯狂了...模拟器显示一切正常...非常感谢你的帮助! - john ellis
今天是否仍然如此? - nembleton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接