Apakah ada cara untuk menentukan kategori ukuran layar perangkat saat ini, seperti kecil, normal, besar, xlarge?
Bukan kepadatan, tapi ukuran layar.
Apakah ada cara untuk menentukan kategori ukuran layar perangkat saat ini, seperti kecil, normal, besar, xlarge?
Bukan kepadatan, tapi ukuran layar.
Anda bisa menggunakan Configuration.screenLayout
bitmask.
Contoh:
if ((getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_LARGE) {
// on a large screen device ...
}
Kode di bawah menyempurnakan jawaban di atas, menampilkan ukuran layar sebagai Toast.
Kode di bawah ini menampilkan kepadatan layar sebagai Toast.
sumber
Jawaban Jeff Gilfelt sebagai metode pembantu statis:
sumber
sumber
Terima kasih atas jawaban di atas, yang banyak membantu saya :-) Tetapi bagi mereka (seperti saya) yang dipaksa untuk tetap mendukung Android 1.5, kita dapat menggunakan refleksi java untuk kompatibel mundur:
sumber
Configuration
kelas. Ini adalah nilai akhir statis yang akan digariskan pada waktu kompilasi (yaitu, mereka akan digantikan oleh nilai aktualnya), sehingga kode Anda tidak akan rusak pada versi platform yang lebih lama.targetSdkVersion
ke rilis terbaru.Jika Anda ingin dengan mudah mengetahui kepadatan layar dan ukuran perangkat Android, Anda dapat menggunakan aplikasi gratis ini (tidak memerlukan izin): https://market.android.com/details?id=com.jotabout.screeninfo
sumber
Perlu memeriksa layar xlarge & x..kepadatan tinggi? Ini adalah kode yang diubah dari jawaban yang dipilih.
sumber
Berikut adalah jawaban Tom McFarlin versi Xamarin.Android
sumber
Coba fungsi ini isLayoutSizeAtLeast (int screenSize)
Untuk memeriksa layar kecil, minimal 320x426 dp dan di atas getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_SMALL);
Untuk memeriksa layar normal, minimal 320x470 dp dan di atas getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_NORMAL);
Untuk memeriksa layar besar, minimal 480x640 dp dan di atas getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_LARGE);
Untuk memeriksa layar ekstra besar, minimal 720x960 dp dan di atas getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_XLARGE);
sumber
Pada tahun 2018, jika Anda membutuhkan jawaban Jeff di Kotlin, ini dia:
sumber
Tidak bisakah Anda melakukan ini menggunakan sumber daya string dan enum? Anda dapat menentukan sumber daya string yang memiliki nama ukuran layar, seperti KECIL, MENENGAH, atau BESAR. Kemudian Anda bisa menggunakan nilai sumber daya string untuk membuat turunan enum.
Tentukan Enum dalam kode Anda untuk berbagai ukuran layar yang Anda pedulikan.
Tentukan sumber daya string, katakan screensize, yang nilainya akan menjadi KECIL, MENENGAH, atau BESAR.
screensize
dalam sumber daya string di setiap dimensi yang Anda sayangi.Sebagai contoh,
<string name="screensize">MEDIUM</string>
akan masuk dalam nilai-sw600dp / strings.xml dan values-medium / strings.xml dan<string name="screensize">LARGE</string>
akan masuk dalam sw720dp / strings.xml dan nilai-besar / strings.xml.ScreenSize size = ScreenSize.valueOf(getReources().getString(R.string.screensize);
sumber
Salin dan tempel kode ini ke Anda
Activity
dan ketika dijalankan akanToast
kategori ukuran layar perangkat.sumber