Kerangka Aplikasi untuk mendukung banyak layar

94

Seperti kita ketahui Android hadir dengan berbagai perangkat yang memiliki Fitur, Resolusi, dan Ukuran Layar yang berbeda-beda sehingga saat mengembangkan Aplikasi yang mendukung beberapa layar (kecil dan besar) terdapat kendala ukuran dan tata letak.

Ini mengarah pada kombinasi yang berbeda dari ukuran layar, resolusi, dan DPI dan menciptakan tantangan yang cukup besar saat merancang dan mengembangkan untuk perangkat Android. Sementara beberapa Produsen (non Android) lain memiliki resolusi dan DPI yang berbeda, mereka berbagi ukuran layar yang sama dan resolusinya mengikuti rasio aspek yang sama. Oleh karena itu, gambar dapat dibuat agar sesuai dengan perangkat non Android.

Pertanyaan saya adalah apakah ada aliran atau arsitektur yang tepat yang harus diikuti untuk memenuhi persyaratan?

masukkan deskripsi gambar di sini

Ingat kami memiliki Tablet dengan Ukuran dan Resolusi yang berbeda.

Saya mengetahui bahwa Pengembang Android berisi informasi ini tetapi pandangan saya berasal dari penerapan.

Dari pengetahuan saya yang saya pahami adalah untuk mendesain grafis Android bahkan Programmer harus mengetahui konsep desainnya.

Mohammed Azharuddin Shaikh
sumber
14
Apakah kalian yakin pertanyaan ini tidak membangun?
Mohammed Azharuddin Shaikh
6
Menurut saya ini sangat konstruktif. Ingin tahu alasan penurunan suara tersebut.
Lazy Ninja
11
@MKJParekh mengambil MicroMax Funbook gsmarena.com/micromax_funbook_p300-4701.php 7", 480X800, Ldpi (133 dpi) bisa Anda ceritakan di mana kategori (drawble-besar atau Ldpi atau jika Android v3.0 sw-480) itu akan jatuh?
Mohammed Azharuddin Shaikh
1
@LazyNinja alasan penurunan suara adalah orang gila dan gila. Siapa yang hanya berpikir mereka hanya dapat mengajukan pertanyaan konstruktif: p
AZ_
1
@AZ_ :) Kami menggunakan struktur resolusi ini dalam folder res drawable drawable-hdpi drawable-hdpi-v11 drawable-hdpi-v9 drawable-drawable-large-hdpi drawable-ldpi drawable-mdpi drawable-mdpi-v11 drawable-small drawable- xhdpi drawable-xhdpi-v11 drawable-xxhdpi drawable-xxhdpi-v11 tata letak tata letak-tata letak kecil-sw530dp tata letak-sw720dp tata letak-xlarge nilai nilai-nilai sw530dp-nilai sw720dp-nilai v14-xlarge dan digunakan dimensi yang ditentukan dengan baik dalam xml dari folder nilai . FYKI aplikasi kami mendukung lebih dari 5k jenis perangkat.
MKJParekh

Jawaban:

147

Akhirnya dibuat struktur yang menangani tata letak dan ikon untuk banyak layar.

Android menggeneralisasi tampilan perangkat ke dalam kategori berdasarkan dua parameter:

  • Ukuran layar, ukuran fisik tampilan (diukur secara diagonal)
  • Kepadatan layar, kepadatan piksel fisik tampilan (dalam piksel-per-inci, atau ppi) `

Untuk menentukan ukuran & kepadatan layar dengan cepat, harap instal aplikasi " What's my Size " untuk Android.

Ukuran layar

Android mendefinisikan empat ukuran layar umum:


 Qualifier           Size

 small               ~3 inches (approx) 
 normal              ~4 inches (approx) 
 large               Exceeds 4 inches    
 xlarge              Exceeds 7 inches  
  • Sebagian besar ponsel diklasifikasikan sebagai kecil atau normal (kira-kira 3 hingga 4 inci secara diagonal). Namun saat ini sudah banyak ponsel dengan layar besar seperti Galaxy S4, HTC One, Xperia Z
  • Tablet kecil seperti Samsung Galaxy Tab tergolong besar (lebih besar dari 4 inci)
  • Ekstra besar berlaku untuk perangkat besar, misalnya tablet besar

Android mendefinisikan empat kepadatan layar umum:


 Qualifier         Description         Nominal value

 ldpi              low density          120 ppi
 mdpi              medium density       160 ppi
 hdpi              high density         240 ppi
 xhdpi             extra high density   320 ppi

Khas:

  • ukuran layar memiliki pengaruh paling besar pada tata letak aplikasi Anda
  • kepadatan layar memiliki pengaruh paling besar pada gambar dan sumber daya grafis Anda

Di sini tercantum persentase perbedaan layar perangkat

  • Ldpi- 75%
  • Mdpi- 100% (berdasarkan situs pengembang Android)
  • Hdpi- 150%
  • XHdpi- 200%

masukkan deskripsi gambar di sini

Tapi seperti yang kita ketahui sekarang sebagian besar perangkat datang dengan 480X800 jadi saya menganggap ini sebagai perangkat berbasis, jadi perhitungan baru kami akan seperti ini

  • Ldpi- 50%
  • Mdpi- 66,67%
  • Hdpi- 100%
  • XHdpi- 133,33%

yang berarti bahwa ikon dan desain pertama akan dibuat hanya untuk 480X800 dan kemudian untuk yang lainnya (yaitu Ldpi, Mdpi, Xhdpi).

Ada gambar yang umum untuk semua layout dan harus seragam dalam warna dan bentuk (tidak ada bentuk rumit, tidak ada kurva) jadi untuk jenis gambar ini kita sedang membuat 9patchyang akan dimasukkan ke folder "drawable (tanpa sufiks)". Untuk membuat gambar 9Patch, Anda dapat menggunakan DrawNinePatch atau BetterNinePatch

Sekarang ganti nama gambar Anda berdasarkan standar Android dan lengkapi aplikasi Anda dengan hdpidan kemudian ambil drawable-hdpifolder dan Buka Adode Photoshop (disarankan) buat Aksi beberapa ukuran (ubah ukuran sesuai rasio persentase) setelah Tindakan dibuat untuk semua ukuran lalu lakukan saja Otomatiskan Batch dan berikan sumber (drawable-hdpi) dan tujuan (drawable-ldpi, drawable-mdpi, drawable-xdpi).

Alasan saya memaksa Anda untuk menggunakan Photoshop karena itu akan mengubah ukuran gambar Anda secara otomatis dengan Actions dan satu poin plus lagi adalah Anda tidak perlu mengganti nama file (itu akan memberikan nama yang sama dengan yang asli).

setelah Anda menyelesaikan pembuatan semua gambar, segarkan proyek Anda dan uji.

Kadang-kadang mungkin ada kemungkinan bahwa layout yang mendukung layar (xhdpi, hdpi, mdpi) dapat dipotong di layar kecil (ldpi) jadi untuk menangani ini cukup buat folder Layout terpisah (layout-small) untuk itu dan tambahkan ScrollView(kebanyakan). Itu dia.

Tablet Tablet dikategorikan menjadi dua ukuran.

  1. 7 "(1024X (600-48 (bilah navigasi))) = 1024X552 (besar dapat digambar)
  2. 10 "(1280X (800-48 (bilah navigasi))) = 1280X752 (drawable-xlarge)

Dalam hal ini kita perlu membuat gambar untuk kedua layar dan menempatkannya sesuai

Jadi secara keseluruhan kita akan memiliki folder ini di aplikasi kita untuk mendukung banyak layar.

drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge

akan lebih banyak kombinasi kualifikasi dengan Screen size and Screen density

drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi

lebih banyak kualifikasi dengan Screen density and Version

drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11

dan lebih banyak kualifikasi dengan Screen size and Version

drawable-large-v11
drawable-xlarge-v11

dan lebih banyak kualifikasi dengan Smallest width concept(SW)

 drawable-sw???dp

Lebih jauh lagi di Android V3.0 Honeycomb mereka memperkenalkan konsep baru SW(smallest width)di mana perangkat dikategorikan ke dalam lebar layar, jadi jika kita membuat folder bernama drawable-sw360dpmaka perangkat dengan 720dp (baik lebar maupun tinggi) akan menggunakan sumber daya dari folder ini.

misalnya untuk menemukan Samsung Galaxy S3 dp ke sufiks untuk drawable-sw? dp
Dengan referensi Perhitungan DP , Jika Anda ingin mendukung layout atau drawable Anda ke S3 maka perhitungannya mengatakan

px = Lebar perangkat = 720
dpi = Kepadatan perangkat = 320

formula yang diberikan

    px = dp * (dpi / 160)

mempertukarkan rumus karena kita memiliki nilai px

    dp = px / (dpi / 160)

sekarang memberi nilai,

     dp= 720 / (320/160);
     dp=360. 

begitu drawable-sw360dpjuga pekerjaannya

Dapatkan Anda Konfigurasi perangkat dari GsmArena Sameway Anda juga dapat membuat folder sesuai dengan versi API Android Perangkat yaitu drawable-hdpi-v11` sehingga perangkat yang memiliki API11 dan itu adalah Hdpi kemudian akan menggunakan sumber daya ini.

Tips Tambahan:

  • Gunakan tata letak relatif, dp, sp, dan mm

    unit dp - piksel independen perangkat dinormalisasi ke 1 piksel fisik pada layar 160 ppi, yaitu kepadatan sedang. Diskalakan saat waktu proses. Gunakan untuk dimensi elemen layar

    unit sp - piksel berskala, ditentukan sebagai nilai titik mengambang, berdasarkan unit dp tetapi juga diskalakan untuk setelan preferensi ukuran font pengguna. Diskalakan saat runtime. Gunakan untuk ukuran font

    Anda harus selalu menggunakan RelativeLayout untuk tata letak; AbsoluteLayout tidak digunakan lagi dan tidak boleh digunakan.

  • Gunakan format gambar yang sesuai - PNG versus JPEG

    Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.

    Namun, PNG dan JPEG tidak setara. Mereka memiliki kualitas yang berbeda, dan PNG tidak selalu yang terbaik:

    JPEG dapat menawarkan pengurangan ukuran file hingga 50% dibandingkan PNG, yang signifikan jika aplikasi Anda intensif gambar

    JPEG "lossy" dengan kualitas lebih tinggi mungkin terlihat lebih baik daripada PNG "lossless" yang sangat terkompresi, untuk ukuran file yang sama

  • Tambahkan label ke gambar dan grafik Anda untuk debugging

  • Gunakan elemen layar pendukung

  • Konfigurasikan emulator Anda dengan nilai perangkat nyata

    Secara konvensional, tampilan sistem desktop pada 72ppi (Mac), atau 96ppi (Windows, Linux). Dibandingkan dengan ponsel, tampilan desktop selalu memiliki kepadatan yang rendah.

    Selalu konfigurasikan emulator Android Anda untuk meniru nilai perangkat yang sebenarnya, dan selalu setel ke skala untuk meniru kepadatan perangkat.

    Di Eclipse, mudah untuk membuat beberapa emulator (dari bilah menu Eclipse, pilih Window> AVD Manager> New ) yang dikonfigurasi dengan nilai untuk perangkat nyata:

    Beri nama emulator untuk perangkat sebenarnya yang diemulasinya. Specify Resolution, jangan gunakan ukuran generik bawaan. Setel kepadatan perangkat agar sesuai dengan perangkat sebenarnya (di panel Hardware, setel Properti LCD Abstrak ke kepadatan nyata, selalu berupa nilai bilangan bulat)

    Saat Anda meluncurkan perangkat, selalu pilih Scale display to real size, dan ketik dimensi real screen dalam inci.

    Jika Anda tidak menyetel kepadatan perangkat, emulator secara default ke kepadatan rendah, dan selalu memuat resource khusus ldpi. Resolusi (dimensi piksel) akan benar, tetapi sumber daya gambar yang bergantung pada kepadatan tidak akan ditampilkan sebagaimana mestinya.

    Tentu saja, Anda tidak akan mereproduksi kualitas gambar dengan kepadatan lebih tinggi pada tampilan desktop dengan kepadatan lebih rendah.

Berikut adalah Data yang dikumpulkan selama periode 7 hari yang berakhir pada 1 Oktober 2012. Untuk melihat statistik terbaru tentang versi platform Android, buka di sini

Berdasarkan Ukuran Layar

masukkan deskripsi gambar di sini

Berdasarkan Kepadatan Layar

masukkan deskripsi gambar di sini

hotveryspicy
sumber
2
Untuk samsung galaxy tab 7 "kami harus menyimpan gambar di bawah drawable-besar-hdpi jika tidak gambar akan melebar atau menyusut.
rajpara
@rajpara ada banyak kombinasi dan permutasi, kami akan memasukkan semua kasus seperti itu nanti.
Mohammed Azharuddin Shaikh
1
lihat @AlexBonel, ya saya setuju dengan Anda, tetapi moto utama saya adalah untuk mengetahui bagaimana hal-hal dapat dilakukan dalam hal dukungan Multi-layar. Seseorang dapat memodifikasi / memanipulasi aliran / konsep ini karena di atas adalah untuk memperjelas masalah awal. Selain itu saya juga melakukan modifikasi berdasarkan desain aplikasi. Posting Anda memberi saya kesan bahwa Anda memahami konsepnya. Semoga Anda mengerti maksud saya.
Mohammed Azharuddin Shaikh
1
Jawaban bagus. Setelah mencari banyak dan berhari-hari mengapa pengecualian ini terjadi, saya mendapatkan posting ini sebagai jawaban terbaik dengan contoh dan penjelasan yang bagus. misalnya Pertimbangkan tablet Halo Value 7 inci. PPI = 133. Resolusi = 480 * 800. Ukuran = 7 'Inch. Jika kita menganggap mdpi sebagai basis, ini harus mengambil dimensi yang ditentukan dalam values-sw480 tetapi mengambil dimensi dari values-sw600. Tidak saya mengerti mengapa ini terjadi. Benar-benar terima kasih banyak atas kiriman Anda. Hemat waktu yang terbuang dan bersihkan kebingungan. Saya pikir ini harus ada di situs resmi Android. Hargai usaha Anda.
Smeet
1
Saya rasa ini adalah jawaban terbaik yang pernah saya lihat. Saya mencari jawaban seperti itu sejak lama. Dan akhirnya saya mendapatkannya. Terima kasih semua orang telah berkontribusi untuk jawaban ini agar lebih dimengerti.
Hiren Dixit
1

Desainer harus membuat desain dasar

base size of mdpi devices * density conversion factor of highest supported density bucket
Ukuran layar dasar adalah 320 X 480 piksel dan keranjang kepadatan adalah sebagai berikut:

  • ldpi: 0,75
  • mdpi: 1.0 (kerapatan dasar)
  • hdpi: 1.5
  • xhdpi: 2.0
  • xxhdpi: 3.0
  • xxxhdpi: 4.0

Dan untuk mengatasi ruang ekstra yang tersedia pada perangkat Android harus menggunakan komponen yang dapat direnggangkan di kedua arah (secara horizontal dan vertikal). Info lengkap tersedia di sini:

http://vinsol.com/blog/2014/11/20/tips-for-designers-from-a-developer/

Alok Vaish
sumber