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を返した場合(つまり、デバイスがこれらの条件の1つを満たしている場合)
次の方法でテーマをダイアログテーマに設定しました。
setTheme(R.style.MyTheme);
MyTheme
親から継承するテーマはどこですかTheme.Holo.Light.Dialog
このロジックは正常に機能しますが、バックグラウンドで奇妙な効果が得られます。Callingインテントは完全に黒く塗りつぶされていますが、マニフェストでテーマを設定しただけでは、背景はわずかに灰色になります。
更新-コードが追加されました
private Context mClassContext = this;
@Override
public void onCreate(Bundle savedInstanceState){
if(isTablet(mClassContext)){
setTheme(R.style.MyTheme);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);
}
これを複製するにはどうすればよいですか?