2012-07-13 66 views
-3

可能重複:
How to remove ImageButton's standard background image?如何將默認背景分配給按鈕?

我設置一個自定義背景的Button。現在我想恢復此更改並再次顯示Button的默認背景。我怎樣才能做到這一點?

+1

複製你的問題的標題到谷歌,第一主打爲[這個問題](http://stackoverflow.com/questions/5457138/how-to-很輕鬆地恢復默認的背景除去-imagebuttons規格的背景圖像)。 -1沒有研究工作。 – 2012-07-13 13:05:27

+0

請發表您的按鈕的xml – AkashG 2012-07-13 13:05:41

+0

@alextsc我想刪除按鈕的背景(並且要設置默認背景)而不是圖像按鈕。如果我嘗試在Button的背景中設置空或透明圖像,則Button將消失。爲什麼?????? – 2012-07-13 13:13:22

回答

1

一個解決方案就是在您將其設置爲自定義之前記住哪個Drawable作爲背景。保存在onCreate()

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_layout); 

    button = (Button) findViewById(R.id.yourbutton); 
    defaultButtonBackgroundDrawable = button.getBackground(); 

    // set a custom background here, or somewhere else. 
    // Just make sure that the default one is saved before you modify it. 
} 

其中defaultButtonBackgroundDrawable是您的活性和button的成員變量保持到您的按鈕的引用。這樣,您就可以通過做

button.setBackgroundDrawable(defaultButtonBackgroundDrawable); 
+3

感謝您的解決方案。它對我來說工作正常但我發現了另一種解決方案,它也可以工作btn.setBackgroundDrawable(getResources()。getDrawable(android.R.drawable.btn_default)); – 2012-07-13 13:41:48

2

您可以使用android:background="@null"作爲您的Button
button.setBackgroundResource(0);
button.setBackgroundDrawable(null);

+0

button.setBackgroundResources(0);這是錯誤的,因爲這個方法對於按鈕是未定義的。和button.setBackgroundDrawable(null);使我的按鈕消失。 – 2012-07-13 13:19:22

2

通過編程,你可以這樣做,

button.setBackgroundDrawable(null); 
button.setBackgroundResource(0); 
+0

通過設置button.setBackgroundDrawable(null),我的按鈕變得消失; – 2012-07-13 13:16:42

1

最後我得到了我的問題btn.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.btn_default)); 這使我的按鈕的背景,因爲它在默認情況下的解決方案。

相關問題