在Android中,使用QMUI庫實現主題切換可以通過以下幾個步驟來完成:
引入QMUI庫:
首先,確保你已經在項目的build.gradle
文件中引入了QMUI的依賴。例如:
dependencies {
implementation 'com.qmuiteam:qmui-android:版本號'
}
創建主題資源文件:
在res/values
目錄下創建一個名為themes.xml
的文件,用于定義你的主題樣式。例如:
<resources>
<style name="AppTheme" parent="Theme.MaterialComponents.Light">
<!-- 自定義主題樣式 -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="DarkTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- 自定義主題樣式 -->
<item name="colorPrimary">@color/colorPrimaryDark</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccentLight</item>
</style>
</resources>
應用主題:
在AndroidManifest.xml
文件中為你的Activity指定主題。例如:
<application
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme">
<!-- 其他Activity -->
</activity>
</application>
實現主題切換: 你可以通過代碼或按鈕點擊事件來切換應用的主題。以下是一個簡單的示例,展示如何在按鈕點擊事件中切換主題:
import android.content.SharedPreferences;
import androidx.appcompat.app.AppCompatActivity;
import androidx.preference.PreferenceManager;
import com.qmuiteam.qmui.util.QMUIDialogHelper;
import com.qmuiteam.qmui.widget.QMBtn;
public class MainActivity extends AppCompatActivity {
private static final String PREFS_NAME = "MyPrefsFile";
private static final String THEME_KEY = "theme";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化按鈕
QMBtn btnSwitchTheme = findViewById(R.id.btn_switch_theme);
btnSwitchTheme.setOnClickListener(v -> switchTheme());
}
private void switchTheme() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this, PREFS_NAME);
int currentTheme = prefs.getInt(THEME_KEY, 0);
int newTheme;
if (currentTheme == 0) {
newTheme = 1; // DarkTheme
} else {
newTheme = 0; // AppTheme
}
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(THEME_KEY, newTheme);
editor.apply();
// 應用新主題
applyTheme(newTheme);
}
private void applyTheme(int theme) {
if (theme == 0) {
setTheme(R.style.AppTheme);
} else {
setTheme(R.style.DarkTheme);
}
recreate(); // 重建Activity以應用新主題
}
}
使用QMUI的主題工具:
QMUI還提供了主題工具類,可以幫助你更方便地切換和管理主題。例如,你可以使用QMUISkinManager
來設置全局主題:
import com.qmuiteam.qmui.util.QMUISkinManager;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 設置全局主題
QMUISkinManager.setTheme(this, R.style.AppTheme);
}
}
通過以上步驟,你就可以在Android項目中使用QMUI庫實現主題切換了。