2012-11-29 56 views
1

我有以下的圖像按鈕的活動:爲什麼Android Activity在更改背景後移動按鈕?

<ImageButton android:id="@+id/nextPage" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"  
    android:contentDescription="@string/nextPageString" 
    android:alignParentRight="True" 
    android:alignParentBottom="True" 
    android:onClick="NextPage" /> 

我的按鈕出現在我所期望的屏幕的右下角。

當我點擊按鈕,更改與下面的代碼背景:

public void NextPage(View view){ 
    Resources res = this.getResources(); 
    Drawable d = res.getDrawable(R.drawable.nextBackgroundImage); 
    view.setBackground(d); 
} 

我點擊按鈕,它會顯示我的新的背景正是我要在第一時間以後,然而,它移動的圖像按鈕到屏幕的中心。不知道爲什麼。我希望它留在右下角。

+1

我猜'nextBackgroundImage'與你的ImageButton不一樣大小。這就是爲什麼它保持圖像的寬高比。並顯示在中心。 –

+2

嘗試將android:layout_width和android:layout_height設置爲測試的某些定義值 –

+0

圖像有多大?雖然這不會解決你的問題,你可以使用'view.setBackgroundResource(R.drawable.nextBackgroundImage);'和上面的代碼設置寬度兩次,但不是高度... – Sam

回答

1

由於這裏的一些評論已經指出,背景圖片的大小可能就是爲什麼你的按鈕是「移動」。將layout_widthlayout_height設置爲換行,如果視圖的內容(包括其背景)發生更改,大小將會更改。

對Alex的+1,請嘗試在那裏設置一個特定的大小,然後查看會發生什麼情況(例如200dp寬×80dp高)。