Android實(shí)現(xiàn)主題顏色切換功能通常有以下幾種方法:
<style name="AppTheme.Red" parent="Theme.AppCompat.Light">
<!-- 修改顏色屬性 -->
<item name="colorPrimary">@color/red</item>
<item name="colorPrimaryDark">@color/dark_red</item>
<item name="colorAccent">@color/red_accent</item>
</style>
<style name="AppTheme.Blue" parent="Theme.AppCompat.Light">
<!-- 修改顏色屬性 -->
<item name="colorPrimary">@color/blue</item>
<item name="colorPrimaryDark">@color/dark_blue</item>
<item name="colorAccent">@color/blue_accent</item>
</style>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.Button"
android:text="Button" />
// 切換到紅色主題
setTheme(R.style.AppTheme_Red);
recreate();
<color name="red">#FF0000</color>
<color name="blue">#0000FF</color>
// 獲取對(duì)應(yīng)的顏色值
int colorPrimary = ContextCompat.getColor(this, R.color.red);
int colorPrimaryDark = ContextCompat.getColor(this, R.color.dark_red);
int colorAccent = ContextCompat.getColor(this, R.color.red_accent);
// 修改主題顏色
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(colorPrimaryDark);
}
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(colorPrimary));
button.setBackgroundColor(colorAccent);
請(qǐng)注意,以上兩種方法都需要在切換主題時(shí)調(diào)用recreate()
方法來(lái)重新創(chuàng)建Activity,以使主題切換生效。
億速云公眾號(hào)
手機(jī)網(wǎng)站二維碼
Copyright ? Yisu Cloud Ltd. All Rights Reserved. 2018 版權(quán)所有
廣州億速云計(jì)算有限公司粵ICP備17096448號(hào)-1 粵公網(wǎng)安備 44010402001142號(hào)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證編號(hào):B1-20181529