Razieh Shahraki

ساخت عکس برای رزولوشن های مختلف

1 ارسال در این موضوع قرار دارد

این روزها تفاوت تراکم پیکسلی در حدی زیاد شده است که نادیده گرفتن این تفاوت، باعث می شود UI برنامه شما به کلی خراب شود.

در اندروید به جای استفاده از پیکسل، از واحدی به نام dip (که به صورت مخفف dp هم به آن گفته می شود) استفاده می شود . استفاده از dip به جای پیکسل مشکل اندازه را حل می کند اما برای این کار کیفیت خود تصویر قربانی می شود.

رزولوشن های اندروید

اندروید تراکم های مختلف صفحه نمایش را به چند دسته اصلی تقسیم می کند:

  • ldpi: مخفف low-dpi، به صفحه نمایش هایی اطلاق می شود که تراکم پیکسلی آنها بسیار کم و در حدود ۱۲۰dpi است.
  • mdpi: مخفف medium-dpi، به صفحه نمایش هایی اطلاق می شود که تراکم پیکسلی آنها متوسط و در حدود ۱۶۰dpi است.
  • hdpi: مخفف high-dpi، به صفحه نمایش هایی اطلاق می شود که تراکم پیکسلی آنها بالا و در حدود ۲۴۰dpi است.
  • xhdpi: مخفف extra-high-dpi، به صفحه نمایش هایی اطلاق می شود که تراکم پیکسلی آنها بالا و در حدود ۳۲۰dpi است.
  • xxhdpi: به صفحه نمایش هایی اطلاق می شود که تراکم پیکسلی آنها بالا و در حدود ۴۸۰dpi است.
  • xxxhdpi: به صفحه نمایش هایی اطلاق می شود که تراکم پیکسلی آنها بالا و در حدود ۶۴۰dpi است.

فرض کنید می خواهید از یک عکس در برنامه تان استفاده کنید. اگر به شاخه res پروژه دقت کنید می بینید که چندین شاخه در آن وجود دارد که همگی با نام drawable شروع می شوند:

android-ch16-04-drawable-directories.png

بهتر است یک نسخه از این عکس را متناسب به تراکم صفحه های متفاوت تولید کنید و هر کدام را در شاخه متناظر قرار دهید. مثلاً عکسی را که برای دستگاه های با تراکم hdpi ساخته اید باید در شاخه drawable-hdpi قرار دهید و …

نکته اصلی این است که همه این عکس ها باید هم اسم باشند.

برای درک بهتر موضوع، عکس زیر را که از شاخه res یک پروژه ساده اندروید گرفته شده است ببینید:

android-ch16-05-put-image-in-different-drawable-dir.png

همانطور که می بینید، در همه این شاخه ها فایلی به نام ic_launcher.png وجود دارد. در زمان اجرا، سیستم با توجه به رزولوشن (تراکم) صفحه نمایش دستگاه، عکس مربوطه را از یکی از این شاخه ها انتخاب می کند.

ساختن عکس برای رزولوشن های متفاوت

در میان دسته بندی های تراکم صفحه، در تراکم mdpi هر یک پیکسل تقریباً یک dip است. بنابراین معمولاً mdpi مبنای تعیین اندازه عکس برای سایر دسته بندی ها است. فرض کنید می خواهید یک عکس برای نمایش در برنامه بسازید که ابعادی در حدود ۱۰۰dip در ۱۰۰dip داشته باشد. از آنجایی که هر dip در تراکم mdpi حدود یک پیکسل است، باید یک عکس ۱۰۰ پیکسل در ۱۰۰ پیکسل برای صفحات نمایش با تراکم mdpi بسازید. سایر دسته بندی ها نسبت های مشخصی با mdpi دارند. برای مثال xhdpi تراکمی دو برابر mdpi دارد، بنابراین عکسی که برای صفحات با تراکم xhdpi ساخته می شود، باید ۲۰۰ پیکسل در ۲۰۰ پیکسل باشد. نسبت سایر تراکم ها به mdpi به شرح زیر است:

ldpi: از آنجایی که در این تراکم خاص، تعداد پیکسل ها کمتر از mdpi است، عکس ساخته شده باید ۷۵×۷۵ پیکسل باشد. نسبت ldpi به mdpi حدود ۰٫۷۵ است.

hdpi: تراکم hdpi حدود ۲ برابر تراکم ldpi و ۱٫۵ برابر mdpi است. بنابراین عکس ساخته شده باید ۱۵۰×۱۵۰ پیکسل باشد.

xhdpi: تراکم xhdpi حدود ۲ برابر mdpi است. بنابراین عکس ساخته شده باید ۲۰۰×۲۰۰ پیکسل باشد.

xxhdpi: تراکم xxhdpi حدود ۳ برابر mdpi است پس عکس ساخته شده باید ۳۰۰×۳۰۰ پیکسل باشد.

xxxhdpi: تراکم xxxhdpi حدود ۴ برابر mdpi است پس عکس ساخته شده باید ۴۰۰×۴۰۰ پیکسل باشد.

عکس زیر به درک این موضوع کمک می کند:

android-ch16-06-different-display-densities1.jpg

نکته اصلی درباره عکس فوق این است که این ستاره ها در گوشی های مختلف و با صفحه نمایش های با تراکم متفاوت، تقریباً هم اندازه دیده می شوند و کیفیت آنها تغییری نمی کند.

نکته: بهتر است ابتدا یک عکس با کیفیت و اندازه بزرگتر (مثلاً مناسب برای تراکم xxhdpi) بسازید و بعد نسخه هایی در ابعاد کوچکتر از آن عکس برای تراکم های دیگر بسازید.

استفاده از Android Asset Studio

همانطور که احتمالاً حدس می زنید، این که از هر عکس یا آیکون برنامه باید چندین نسخه مختلف بسازید، فرایندی سخت و زمانبر است. ولی متأسفانه هنوز فرایندی ۱۰۰ درصد اتوماتیک برای این کار وجود ندارد. در حال حاضر یک راه حل نسبتاً مناسبی که می تواند تا حد زیادی این فرایند را تسهیل کند، استفاده از ابزاری برخط (آنلاین) است به نام Android Asset Studio.

android-ch16-07-android-asset-studio.png

مثلاً فرض کنید، می خواهیم یک آیکون بسازیم. تصویر اولیه را درhttp://findicons.com جستجو می کنید و آن را در سایز بزرگ دانلود می کنیم.

حالا Android Asset Studio را باز می کنیم و بر روی لینک Generic Icon کلیک می کنیم:

android-ch16-09-android-asset-studio-generic-icon.png

بر روی دکمه Image کلیک کنید و فایل دانلود شده را انتخاب کنید. سایز مورد نظرتان به dip را وارد کنید. نام فایل خروجی را مشخص کنید.

android-ch16-10-android-asset-studio-download-result.png

فایل zip دانلود شده را از حالت فشرده خارج کنید و محتوای آن را در پروژه خود کپی کنید.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری