This works but the value I get is multiplied times the screen density factor
(1.5 for hdpi, 2.0 for xhdpi, etc).
Saya pikir itu baik untuk mendapatkan nilai sesuai resolusi tetapi jika Anda tidak ingin melakukan ini berikan ini di px .......
Pixel-independent pixel (dp)
Unit piksel virtual yang harus Anda gunakan saat mendefinisikan tata letak UI, untuk mengekspresikan dimensi atau posisi tata letak dengan cara yang tidak bergantung pada kepadatan. Pixel independen-kepadatan setara dengan satu pixel fisik pada layar 160 dpi, yang merupakan kepadatan awal yang diasumsikan oleh sistem untuk layar kepadatan "sedang". Saat runtime, sistem secara transparan menangani penskalaan unit dp apa pun, jika perlu, based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels.
Anda harus selalu menggunakan unit dp saat menentukan UI aplikasi Anda, untuk memastikan tampilan UI Anda yang benar di layar dengan kepadatan yang berbeda.
Saya pikir itu baik untuk mengubah nilai sesuai resolusi tetapi jika Anda tidak ingin melakukan ini berikan ini di px .......
lihat tautan ini
sesuai ini
dp
Pixel-Density-independent - Unit abstrak yang didasarkan pada kepadatan fisik layar. Unit-unit ini relatif terhadap layar 160 dpi (dots per inch), di mana 1dp kira-kira sama dengan 1px. When running on a higher density screen, the number of pixels used to draw 1dp is scaled up by a factor appropriate for the screen's dpi. Likewise, when on a lower density screen, the number of pixels used for 1dp is scaled down.
Rasio dp-ke-pixel akan berubah dengan kerapatan layar, tetapi tidak harus dalam proporsi langsung. Menggunakan unit dp (bukan unit px) adalah solusi sederhana untuk membuat ukuran tampilan di tata letak Anda diubah ukurannya dengan benar untuk kepadatan layar yang berbeda. Dengan kata lain, ini memberikan konsistensi untuk ukuran dunia nyata elemen UI Anda di berbagai perangkat.
px
Piksel - Sesuai dengan piksel aktual di layar. Unit pengukuran ini tidak direkomendasikan karena representasi aktual dapat bervariasi antar perangkat; setiap perangkat mungkin memiliki jumlah piksel yang berbeda per inci dan mungkin memiliki lebih banyak atau lebih sedikit total piksel yang tersedia di layar.
getDimensionPixelSize(int id)
yang secara tepat menyatakan bahwa ia kembali dalam Pixel, jadigetDimension(int id)
harus kembali dalam dp (unit independen ketergantungan), yang siap digunakan, misalnya dengan ViewsetPadding