当我运行我的

Android应用程序时,我正在调用一种方法来检查应用程序是否在平板电脑上运行:

public boolean isTablet(Context context){

boolean xlarge = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == 4);

boolean large = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK)== Configuration.SCREENLAYOUT_SIZE_MASK);

return(xlarge || large);

}

如果方法返回true(即设备满足其中一个条件)

我通过以下方式将主题设置为Dialog主题:

setTheme(R.style.MyTheme);

其中MyTheme是一个继承自父Theme.Holo.Light.Dialog的主题

这个逻辑工作正常,但它在后台给我一个奇怪的效果.调用意图完全被遮挡,而如果我只是在清单中设置主题,则背景仅略微变灰.

更新 – 添加了代码

private Context mClassContext = this;

@Override

public void onCreate(Bundle savedInstanceState){

if(isTablet(mClassContext)){

setTheme(R.style.MyTheme);

}

super.onCreate(savedInstanceState);

setContentView(R.layout.myLayout);

}

我该如何复制这个?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐