为什么Android按钮的渲染方式与ImageButtons不同?

时间:2012-09-25 23:49:53

标签: android android-layout android-widget imagebutton

为什么我的Android布局在我使用带背景的Button时工作,但在使用ImageButton时断开?我已阅读文档,无法弄清楚它们为何以不同方式呈现。我看到一个是TextView,一个是ImageView但我假设dp是一个dp而不管上下文。在两个布局之间,我唯一改变的是“ImageButton”到“Button”和“src”到“background”。

工作布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical"
    android:background="@drawable/background">

. . .

<Button 
    android:contentDescription="@string/login_button_facebook"
    android:layout_width="200dp"
    android:layout_height="45dp"
    android:background="@drawable/first_thought_menu_2_facebook"
    android:onClick="loginWithFacebook"        
    />

<Button 
    android:contentDescription="@string/login_button_email"
    android:layout_width="200dp"
    android:layout_height="45dp"
    android:background="@drawable/first_thought_menu_3_email"
    android:onClick="loginWithEmail"        
    />

<Button 
    android:contentDescription="@string/login_button_anonymous"
    android:layout_width="200dp"
    android:layout_height="45dp"
    android:background="@drawable/first_thought_menu_4_anonymous"
    android:onClick="loginWithAnonymous"        
    />            

. . .   

</LinearLayout>

工作布局图片:

Working layout

布局破碎:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical"
    android:background="@drawable/background">

. . .

<ImageButton 
    android:contentDescription="@string/login_button_facebook"
    android:layout_width="200dp"
    android:layout_height="45dp"
    android:src="@drawable/first_thought_menu_2_facebook"
    android:onClick="loginWithFacebook"        
    />

<ImageButton 
    android:contentDescription="@string/login_button_email"
    android:layout_width="200dp"
    android:layout_height="45dp"
    android:src="@drawable/first_thought_menu_3_email"
    android:onClick="loginWithEmail"        
    />

<ImageButton 
    android:contentDescription="@string/login_button_anonymous"
    android:layout_width="200dp"
    android:layout_height="45dp"
    android:src="@drawable/first_thought_menu_4_anonymous"
    android:onClick="loginWithAnonymous"        
    />          

. . .   

</LinearLayout> 

布局破碎的图片:

Broken layout

1 个答案:

答案 0 :(得分:1)

使用android:background代替src。