2016-05-01 17 views

答えて

1

単純に、この例を使用して画面のサイズを取得し、必要に応じてActionBarを非表示にすることができます。

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 
double x = Math.pow(dm.widthPixels/dm.xdpi,2); 
double y = Math.pow(dm.heightPixels/dm.ydpi,2); 
double screenInches = Math.sqrt(x+y); 

インチの画面サイズが表示されます。あなたはピクセル単位でそれをしたい場合は、その後、あなたは

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

はそれが

0

おそらくあなたの最善のアプローチは、解像度のあなたのstyle.xmlのコピーを作ることですがお役に立てば幸い使用することができます/ RES /値 - の値mdpi(またはあなたの望むレイアウトサイズ)を変更し、AppThemeをスタイル+ .NoActionBarに変更します。

例:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
0

あなたがロードされたレイアウトをチェックしたい場合は、たとえば、あなたのレイアウトにタグを追加することができます

LDPIレイアウト:

<RelativeLayout 
    android:width="match_parent" 
    android:height="match_parent" 
    android:id="@+id/mainlayout" 
    android:tag="ldpi" > 

MDPIレイアウト:

<RelativeLayout 
    android:width="match_parent"   
    android:height="match_parent" 
    android:id="@+id/mainlayout" 
    android:tag="mdpi" > 

など。あなたは今どのタグのレイアウトを確認することができ、あなたのプログラムコードで

は持っている:

RelativeLayout layout = (RelativeLayout) findViewById(R.id.mainlayout); 
String tag = layout.getTag(); 
if(tag != null && tag.equals("ldpi")) { 
    // Ldpi Layout loaded, hide actionbar 

} 
1

このような状況では多くのオプションがあります。

まず、アクションバーなしでアプリケーションを使用できることを確認してください。例えばなぜあなたは大きなデバイスにアクションバーを必要としますか?

あなたはAndroid Toolbar(私はお勧めします)を使用していますか?その場合は、レイアウトxmlファイルの小さい画面のレイアウトにツールバーを含めないことを選択できます。例えばlayout-largeディレクトリにツールバーを含め、それをlayout-smallから除外します。次に、あなたのアクティビティ/フラグメント内のビューをバインドすると、ツールバービューが見つからない場合が処理されます。

Toolbar toolbar = (Toolbar)findViewById(R.id.myToolbar); 
if(toolbar != null) { 
    //set up my toolbar here which might include 
    setSupportActionBar(toolbar); 
} 

別のオプションは、サイズの異なる画面に複数のスタイルを使用することです。どこであなたのスタイルがTheme.AppCompat.Light.DarkActionBarある大画面のためにとあなたの小さな画面のためにそのTheme.AppCompat.Light.NoActionBar

0

使用DisplayMetrics

public void setAppInvisible() { 
     actionBar.setVisibility(View.INVISIBLE); 
     // Or actionBar.hide(); 

    } 

DisplayMetrics dm = new DisplayMetrics(); 
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); 
int screenWidth = dm.widthPixels; 

if(screenWidth < 500){ 
    setAppInvisible(); 
} 
関連する問題