Saya ingin memeriksa ini untuk mengambil gambar yang berbeda melalui internet. Bagaimana cara melakukannya?
121
density = getResources().getDisplayMetrics().density;
// return 0.75 if it's LDPI
// return 1.0 if it's MDPI
// return 1.5 if it's HDPI
// return 2.0 if it's XHDPI
// return 3.0 if it's XXHDPI
// return 4.0 if it's XXXHDPI
Anda dapat memeriksa kepadatan layar dengan:
EDIT Ketahuilah bahwa saat Android berkembang, nilai lain harus disertakan dalam
switch
kasus tersebut. Pada hasil edit ini, ini termasukDisplayMetrics.DENSITY_TV
danDisplayMetrics.DENSITY_XXHIGH
. Konsultasikan dokumen untuk info terbaru; Saya tidak akan repot-repot mempertahankan jawaban ini.sumber
density
seperti yang disarankan oleh SteD.)DENSITY_XXHIGH
. Saya menambahkan penafian pada jawaban untuk mencakup semua kasus di masa mendatang. :)Mulai 2018, Anda dapat menggunakan metode di bawah ini -
Tetapi seperti yang ditunjukkan @Ted, selalu berkonsultasi dengan dokumen resmi sebelum menggunakan
sumber
Dari jawaban di atas, saya menggabungkannya dan membuat fungsi di bawah ini:
Sekarang, di perangkat mana Anda ingin mendapatkan informasi kepadatan dan folder mana yang akan digunakan, cukup tambahkan metode di atas dalam aktivitas itu dan tambahkan baris di bawah ini di onCreate
sumber
Untuk React Native untuk memeriksa ukuran perangkat mana yang saat ini digunakan
sumber
PixelRatio.get()
akan mengembalikan berbagai nilai tergantung pada ukuran tampilan yang disetel dalam pengaturan Android, dan dpi. Nilai-nilai itu tidak akan sesuai dengan nilai-nilai pasti yang telah Anda tuliskan.Pada beberapa perangkat (milik saya adalah Galaxy Tab3), baik densitas dan densitasDpi mengembalikan nilai aneh seperti 1,33 (densitas), 213 (densitasDpi). Jadi solusi saya adalah menambahkan tanda ini:
ke 4 file values.xml, letakkan ini di bawah folder res / values- [xxx] / yang sesuai.
sumber