Jika Anda menggunakan wizard Vector Asset di Android Studio 1.5.0, XML drawable vektor apa pun yang Anda impor menggunakan wizard tersebut akan masuk res/drawable/
.
Namun, build/
direktori, dan APK yang dihasilkan menunjukkan bahwa file XML tersebut dipindahkan ke res/drawable-anydpi-v21/
direktori resource. Bagian ini -v21
masuk akal, karena VectorDrawable
hanya didukung di API Level 21+. Namun, -anydpi
sepertinya tidak terdokumentasi. Saya akan berharap -nodpi
, baik untuk tujuan impor asli dan di mana sistem build memilih untuk memindahkannya.
Adakah yang pernah melihat pernyataan resmi untuk apa -anydpi
artinya, dan dengan apa hubungannya -nodpi
? Saya mencari efek praktis, bukan hanya apa yang diisyaratkan oleh beberapa komentar kode.
android
android-resources
CommonsWare
sumber
sumber
Jawaban:
nodpi
Misalnya:
Titik akan tampak kecil pada xxhdpi, besar pada ldpi.
Namun, pemecah sumber daya akan cocok dengan kualifikasi tertentu jika ada.
Misalnya
Pada perangkat hdpi Lollipop (API 21), bitmap digunakan.
Pada perangkat Lollipop (API 21) xhdpi, vektor digunakan.
anydpi
Misalnya
Pada perangkat hdpi Lollipop (API 21), vektor digunakan.
Pada perangkat Lollipop (API 21) xhdpi, vektor digunakan.
Referensi
Catatan : anydpi telah ditambahkan dalam perubahan Ic3288d0236fe0bff20bb1599aba2582c25b0db32 .
sumber
drawable
. Bahasa SDK dapat berubah. Lihat VectorDrawable: Android memuat xhdpi PNG alih-alih sumber daya vektordrawable
direktori sumber daya, sama seperti kedua direktori yang saya kutip dalam bounty saya adalahdrawable
direktori sumber daya.-xxhdpi
perangkat. Saya punyares/drawable-mdpi/nodpi_and_m.png
danres/drawable-nodpi/nodpi_and_m.xml
. Pada perangkat Nexus 5,-xxhdpi
sumber daya yang digunakan adalahres/drawable-nodpi/nodpi_and_m.xml
. Menurut algoritme Anda, dan harapan saya,res/drawable-mdpi/nodpi_and_m.png
harus digunakan. Bukan itu yang terjadi.drawable-anydpi-v21
. Jika Anda memiliki pustaka support-vector-drawable, Anda dapat menempatkannya didrawable-anydpi
atau secara sederhanadrawable
.The source code berisi komentar berikut (baris 639):
Semoga ini menghilangkan kebingungan.
sumber
-nodpi
direktori pasti akan diskalakan berdasarkan ukuran, sesuai dengan aturan apa pun yang berlaku tentang cara drawable digunakan.nodpi
: Sumber daya untuk semua kepadatan. Ini adalah resource yang tidak bergantung kepadatan. Sistem tidak menskalakan resource yang diberi tag qualifier ini, terlepas dari kepadatan layar saat ini.anydpi
: Qualifier ini cocok dengan semua kepadatan layar dan lebih diutamakan daripada qualifier lainnya. Ini berguna untuk vector drawable. Ditambahkan dalam API Level 21.sumber
Saya menggunakan drawable-nodpi untuk semuanya, termasuk banyak grafik besar untuk game saya. Salah satu konsekuensi tidak terdokumentasi dari penskalaan grafis Anda adalah peningkatan penggunaan memori secara eksponensial. Jadi jika Anda memiliki grafik 1MB dalam drawable, itu akan diskalakan menjadi 4MB, 16MB, atau 64MB tergantung pada resolusi perangkat pengguna. Dan resolusi perangkat terus meningkat. Peningkatan tersebut tidak benar-benar meningkatkan ketajaman grafik, tentu saja. Tindakan menggambar dapat menunjukkan seberapa besar seharusnya setiap grafik dalam kaitannya dengan ukuran layar, tidak perlu membengkak aplikasi dengan beberapa folder gambar.
sumber