2017-03-09 217 views
1

我正在嘗試更改我的android應用程序中背景的顏色。當我按下按鈕時,它將更改該特定活動的顏色,而不是所有其他活動的顏色。有沒有辦法改變它的整個應用程序?更改活動背景的顏色

screen

public class colorPicker extends AppCompatActivity { 

    View view; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_color_picker); 

     view = this.getWindow().getDecorView(); 

    } 

    public void goPink(View v){ 

     view.setBackgroundResource(R.color.Pink); 
    } 

    public void goGreen(View v){ 

     view.setBackgroundResource(R.color.Green); 
    } 

    public void goYellow(View v){ 
     view.setBackgroundResource(R.color.Yellow); 

    } 
} 
+0

優先保存bg顏色並從首選項加載bg顏色 – UMESH0492

回答

0

你可以改變你應用主題的窗口背景顏色,不要使用活動的背景,或者您可以使用活動透明背景。

0

創建您的styles.xml一個主題,並添加以下到主題

<item name="android:windowBackground">@color/window_background 

,並在您

<application> 
... 
</application 

清單文件

+0

如果我想選擇特定顏色作爲開發人員,我相信這是一個解決方案。我希望用戶通過在活動中按下一個按鈕來選擇一種顏色,然後根據這一點,顏色會改變。我希望我明確表達! –

+0

通過這個http://stackoverflow.com/questions/33987678/programmatically-change-the-value-of-a-color-resource-obtained-from-api-response –

0

設置android:theme="@style/YourTheme"在這種情況下,你需要在活動中添加少許變化。 在上的onCreate

if(getIntent().getExtras() != null) 
    { 
     int theme = getIntent().getIntExtra("theme", R.style.AppTheme); 
     setTheme(theme); 
     getApplication().setTheme(theme); 
     //recreate(); 
    } 

條件的onclick

if(condition) 
    getIntent().putExtra("theme", R.style.AppTheme2); 
    else 
    getIntent().putExtra("theme", R.style.AppTheme); 

,並保持2主題

<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary"></item></style> 

和類似它只是更名爲BaseTheme2第二個主題。

但是這不建議在運行時更改應用程序主題。

+0

在問題中沒有「意圖」。顏色來自按鈕單擊事件。 –