私はそれが古いスレッドであることを知っていますが、この方法はどうですか?
public boolean isLargeScreen() {
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.device_screen, null);
FrameLayout menu = (FrameLayout) view.findViewById(R.id.menu);
if (left_menu != null) {
return true;
} else {
return false;
}
}
それから:
if ( isLargeScreen() ) {
// do something for large screen & extra large screen
} else {
// do something for normal screen size
}
およびxmlレイアウト(たとえば):
res / layout / device_screen.xml //通常の画面サイズのレイアウト(「デフォルト」)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
[leave it blank]
</LinearLayout>
res / layout-large /device_screen.xml//大画面サイズのタブレットのレイアウト7'
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/menu"
... />
</LinearLayout>
res / layout-xlarge /device_screen.xml//特大画面サイズのレイアウト>タブレット10 '
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/menu"
... />
</LinearLayout>
HTCDesireとSamsungGalaxyNote 10.1でテスト済み-うまく機能します!