在 Android 中,可以通過編程方式或布局文件來實現狀態欄(Status Bar)的定制。以下是一些常見的方法:
你可以使用 Window
類的 setStatusBarColor
方法來設置狀態欄的顏色。
import android.app.Activity;
import android.graphics.Color;
import android.os.Build;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(Color.parseColor("#FF0000")); // 設置紅色狀態欄
}
}
}
你可以在布局文件中設置狀態欄的顏色。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- 設置狀態欄顏色 -->
<item name="android:windowTranslucentStatus">true</item>
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
</style>
你可以使用透明狀態欄來實現全屏效果。
import android.app.Activity;
import android.os.Build;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); // 允許布局超出屏幕
}
}
}
如果你使用的是 Material Design,可以在布局文件中設置狀態欄為深色。
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<!-- 設置狀態欄顏色 -->
<item name="android:windowLightStatusBar">true</item>
</style>
你也可以使用第三方庫來更方便地定制狀態欄,例如 Material Design Status Bar。
通過以上方法,你可以根據需要定制 Android 應用的狀態欄。