gpt4 book ai didi

android - 根据设备是安卓平板电脑还是手机使用不同的主题

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:10:51 27 4
gpt4 key购买 nike

我想知道如何根据设备是平板电脑还是手机更改 Activity 的主题。我有一个设置 Activity ,它有一个 @android:style/Theme.Black.NoTitleBar 主题。在平板电脑上,我希望此 Activity 的主题类似于 @android:style/Theme.Dialog

我在 Manifest.xml 文件中选择了 Activity 的主题,但据我所知,这个 list 文件没有平板电脑版本?

如何更改此 Activity 的主题?我可能还会更改其他一些 Activity 的主题以隐藏操作栏。

最佳答案

您可以像这样在每个 Activity 中动态设置它:

 protected void onCreate(Bundle icicle) {

super.onCreate(icicle);

// ...

// Call setTheme before creation of any(!) View.

if(isTablet()) {
setTheme(android.R.style.Black);
}
else {
setTheme(android.R.style.Theme_Dark);
}
// ...

setContentView(R.layout.main);
}

现在您需要 isTablet 方法,但检测设备类型有点困难。这是我在网上找到的一种方法,它会检查屏幕尺寸,如果屏幕很大,则假定当前设备是平板电脑。:

public boolean isTablet() {
try {
// Compute screen size
DisplayMetrics dm = context.getResources().getDisplayMetrics();
float screenWidth = dm.widthPixels / dm.xdpi;
float screenHeight = dm.heightPixels / dm.ydpi;
double size = Math.sqrt(Math.pow(screenWidth, 2) +
Math.pow(screenHeight, 2));
// Tablet devices should have a screen size greater than 6 inches
return size >= 6;
} catch(Throwable t) {
Log.error(TAG_LOG, "Failed to compute screen size", t);
return false;
}

}

关于android - 根据设备是安卓平板电脑还是手机使用不同的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8148749/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com