Android xml中的ImageButton(图像太小,分辨率太差)

时间:2014-01-18 01:17:25

标签: android android-linearlayout imagebutton

我有以下3个图像按钮。代码如下所示,三个按钮看起来相同。 问题:

  1. 图像未完全填充按钮的大小
  2. 图像的分辨率很差。我将图像保存在所有res / drawable文件夹中(drawable-hdpi,mdpi等)。图像由“Android Icon Set”向导加载。
  3. 有什么想法吗?我一直在玩padding和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="horizontal">
    
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginTop="10dp"
        android:orientation="vertical">
    
    <ImageButton
        android:id="@+id/abutton"
        android:src="@drawable/a_button_icon"
        android:layout_height="150dp" 
        android:layout_width="150dp" 
        android:padding="5dp"
        android:scaleType="fitXY"/>
    
    <ImageButton
        android:id="@+id/button"        
        android:src="@drawable/b_button_icon"
        android:layout_height="150dp" 
        android:layout_width="150dp" 
        android:scaleType="fitXY"/>
    
     </LinearLayout>
    
     <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" 
        android:layout_marginTop="10dp"> 
    
    <ImageButton
        android:id="@+id/cbutton"        
        android:src="@drawable/d_icon"
        android:layout_height="150dp" 
        android:layout_width="150dp" 
        android:padding="20dp"
        android:scaleType="fitXY"/>
    
    <ImageButton
        android:id="@+id/dbutton"        
        android:src="@drawable/about_a_button"
        android:layout_height="150dp" 
        android:layout_width="150dp" 
        android:padding="20dp"
        android:scaleType="fitXY"/>
    
        </LinearLayout>
    </LinearLayout>
    

3 个答案:

答案 0 :(得分:6)

而不是将drawable分配给android:src属性,而不是将其分配给android:background的{​​{1}}属性。

OR

您可以尝试设置ImageButton,这会使android:adjustViewBounds="true"调整其边界以保持其可绘制的宽高比

PS:如果将图像设置为ImageButton的背景,则图像将缩放到ImageButton的任何大小。除此之外,src是前景图像,背景是背景图像。

修改

ImageButton

希望这有帮助。

答案 1 :(得分:3)

尝试 删除填充并将背景设置为“null”。 在分辨率的情况下,我认为它采用的是低分辨率图像。

<ImageButton
    android:id="@+id/dbutton"        
    android:src="@drawable/about_a_button"
    android:layout_height="150dp" 
    android:layout_width="150dp" 
    android:background="@null"
    android:scaleType="fitXY"/>

答案 2 :(得分:1)

我遇到了同样的问题。没有什么对我有用。最后这是一个简单的问题。默认情况下,填充是在图像周围。所以使用:

机器人:填充= “0dp”

它将解决问题。