Rumah > Soal Jawab > teks badan
问题如题描述,设计给的尺寸都是px的,而且也不告诉他们在什么尺寸和分辨率的屏幕上做的设计?作为程序员要如何转换单位?
我不是在问px与dp之间如何转换的问题。而是由设计师的px如何转换成写在xml里的dp的问题。
阿神2017-04-17 18:01:24
非战斗人员请远离, 现在开撕!
Apabila anda menghadapi situasi seperti ini, anda hanya boleh memberitahu artis anda (kami tidak boleh memanggil mereka pereka di sini): Ini tidak boleh dilakukan!!!
Setiap kali anda mereka bentuk UI Aplikasi, anda mesti mereka bentuk pada resolusi standard arus perdana Kemudian anda boleh mencari ketumpatan skrin yang sepadan, dan akhirnya anda boleh menukar px kepada dpi
Jika anda menyimpang daripada prinsip ini adalah Anda bertindak seperti penyangak Pada akhirnya, pelaksanaan anda akan menjadi tidak realistik dan jauh daripada draf reka bentuk UI. Itu bukan urusan anda
Rujukan:Metrik Peranti
Kaedah pengiraan:Setelah mengetahui resolusi draf reka bentuk dan ketumpatan skrin yang biasanya sepadan dengan resolusi, kirakannya mengikut formula berikut:
dpi = px / density
p.s. Ketumpatan ialah nilai lajur Ketumpatan dalam Metrik Peranti p.p.s. Jangan bergaduh dengan artis anda selepas membaca jawapan berdarah panas ini Anda masih perlu membincangkannya dengan betul [ Penutup muka] [ Akui pengecut] 2333
PHP中文网2017-04-17 18:01:24
Pertama sekali, anda perlu tahu apakah saiz skrin dalam reka bentuk
Ia biasanya 1080x1980 (? atau lain-lain), biasanya kepunyaan xxhdpi, iaitu, 1dp bersamaan dengan 3px
Jika lebar skrin reka bentuk hanya 480 (atau kiri dan kanan), maka 1dp hendaklah 1px
天蓬老师2017-04-17 18:01:24
1dp ditakrifkan sebagai 1px apabila nilai ketumpatan skrin ialah 160ppi, iaitu pada mdpi, 1dp = 1px. Mengambil mdpi sebagai standard, nisbah nilai ketumpatan skrin ini ialah: ldpi: mdpi: hdpi: xhdpi: xxhdpi = 0.75: 1: 1.5: 2: 3; iaitu, pada ketumpatan xhdpi, 1dp=2px; kes hdpi, 1dp=1.5px. Analogi lain.
1dp=(skrin ppi/160)px
Pautan asal
PHPz2017-04-17 18:01:24
apung statik awam px2dp(Konteks konteks, apungan pxVal)
{
final float scale = context.getResources().getDisplayMetrics().density;
return (pxVal / scale);
}
Kaedah penukaran: px ---> dp