سبد (0)

آموزش اندروید-صفحه نمایش مختلف

آن چه در این آموزش فرا می گیرید:

  1. ایجاد چیدمان های متفاوت
  2. ایجاد Bitmapهای متفاوت

مواردی که باید مطالعه کرده باشید:

  • ایجاد منبع

  • راهنمای طراحی آیکن

آموزش اندروید - پشتیبانی از صفحات نمایش متفاوت

اندروید صفحات نمایش را بر اساس دو ویژگی کلی طبقه بندی می کند: اندازه و تراکم (Density). برنامه ی اندروید شما باید هم روی دستگاه های مختلف با صفحات نمایش مختلف و هم روی دستگاه هایی مختلف با تراکم صفحه نمایش متفاوت طراحی شده باشد. به همین دلیل، می بایست منابع متعددی را در برنامه ی اندرویدی خود اضافه کنید تا ظاهر برنامه اندرویدی را برای صفحات نمایش با اندازه و تراکم متفاوت بهینه نمایید.

  • به طور کلی چهار اندازه برای صفحات نمایش وجود دارد: کوچک (small)، عادی (normal)، بزرگ (large)، و خیلی بزرگ (xlarge)
  • و چهار اندازه ی کلی نیز برای تراکم وجود دارد: کم (low یا ldpi)، متوسط (medium یا mdpi)، بالا (high یا hdpi) بسیار بالا (extra high یا xdpi)

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

همچنین دقت داشته باشید وقتی صفحه نمایش را می چرخانیم ابعاد صفحه ی نمایش برعکس می شود، بنابراین می بایست برای افقی یا عمودی بودن صفحه ی نمایش چیدمان های جداگانه ای تعریف کنیم تا کاربر با چرخش دستگاه خود، احساس بدی نسبت به برنامه پیدا نکند.


ایجاد چیدمان های متفاوت

اگر می خواهید کاربران دستگاه هایی با صفحات نمایش متفاوت با برنامه ی شما راحت باشند، نیاز است تا به ازای ابعاد مختلف صفحه نمایش مختلف، یک فایل چیدمان XML مجزا و منحصر به فرد ایجاد کنید. هر یک از این چیدمان ها می بایست در دایرکتوری منبع مناسب ذخیره شود. قبل از نام این دایرکتوری ها باید پسوند <screen_size> بیاید. مثلاً چیدمان مربوط به ابعاد بزرگ بایستی در دایرکتوری /res/layout-large ذخیره شود.

Note

توجه: برای اینکه چیدمان شما به صورت دقیق و مناسب در صفحه نمایش جایگذاری شود، اندروید به صورت اتوماتیک چیدمان را مقیاس بندی می کند. بنابراین، نگران این نباشید که چیدمان شما باید دقیقاً هم اندازه ی با ابعاد دستگاه باشد، اما به جای آن روی ساختار چیدمان که بر رضایت کاربر تأثیر گذار است متمرکزشوید.

 

به عنوان مثال، فولدرهای پروژه ی زیر حاوی یک چیدمان پش فرض و یک چیدمان نیز برای صفحات نمایش با ابعاد بزرگ است:

افزودن چیدمان برای ابعاد بزرگ


MyProject/
    res/
        layout/
            main.xml
        layout-large/
            main.xml

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

ارجاع به فایل چیدمان برنامه خیلی ساده و مثل قبل است ، مانند آنچه در زیر آمده است:

ارچاع به فایل چیدمان

 
@Override
 
protectedvoid onCreate(Bundle savedInstanceState){
     
super.onCreate(savedInstanceState);
     setContentView
(R.layout.main);
}

زمانی که برنامه ی شما اجرا شد، سیستم اندروید فایل چیدمان را از دایرکتوری متناسب با سایز صفحه نمایش بارگذاری می کند.

به عنوان یک مثال دیگر، در زیر پروژه ای آ»ده است که دارای چیدمان برای نمای افقی (landscape) وجود دارد:

چیدمان مربوط به نمای افقی

 
MyProject/
    res/
        layout/
            main.xml
        layout-land/
            main.xml

به طور پیش فرض فایل layout/main.xml برای نمای عمودی (portrait) استفاده می شود.

اگر می خواهید چیدمان خاصی برای نمای افقی صفحات نمایش بزرگ ایجاد کنید، می بایست هم پسوند large و هم پسوند land را اضافه نمایید:

افزودن نمای افقی به صفحات نمایش بزرگ

 
MyProject/
    res/
        layout/              # default (portrait)
            main.xml
        layout-land/         # landscape
            main.xml
        layout-large/        # large (portrait)
            main.xml
        layout-large-land/   # large landscape
            main.xml

Note

توجه: اندرویدهای 3.2 و بالاتر، متدهای پیشرفته ای برای تعریف منابع صفحات نمایش دارند. این متد ها بر اساس کمترین طول و عرض با در نظر گرفتن پیکسل های مجزا از تراکم می باشد.


ایجاد Bitmapهای متفاوت

شما می بایست همواره منابع bitmap مختلفی  فراهم کنید که به هریک از تراکم های عمومی (پایین، متوسط، بالا و بسیار بالا) به صورت متناسب مقیاس پذیر باشند. این امر باعث می شود شما به کیفیت خوب گرافیکی و عملکرد بالا روی تراکم های مختلف صفحه نمایش دست پیدا کنید.

برای ایجاد چنین تصاویری، از منابع خام خود در فرمت وکتور (بردار) شروع کنید و تصاویری را برای هر تراکم با استفاده از مقیاس های زیر ایجاد کنید

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (پایه)
  • ldpi: 0.75

این بدین معناست که اگر تصویری 200x200 برای دستگاه های xhdpi ایجاد کردید، می بایست برای دستگاه های hdpi منبعی مشابه با ابعاد 150x150، برای دستگاه های mdpi منبعی مشابه با ابعاد 100x100 و برای دستگاه های ldpi منبعی مشابه با ابعاد 75x75 ایجاد کنید

سپس فایل ها را در دایرکتوری های منبع قابل ترسیم به صورت متناسب قرار دهید:

قرارگیری فایل های منبع تصویر

 
MyProject/
    res/
        drawable-xhdpi/
            awesomeimage.png
        drawable-hdpi/
            awesomeimage.png
        drawable-mdpi/
            awesomeimage.png
        drawable-ldpi/
            awesomeimage.png

هرگاه که به drawable/[email protected] ارجاع دهید، سیستم اندروید تصویر مناسب را بر اساس تراکم صفحه نمایش انتخاب می کند.

Note

توجه: منابع کم تراکم (ldpi) همیشه ضروری نیستند. هنگامی که منابع مربوط به hdpi فراهم می کنید، سیستم مقیاس تصویر را نصف می کند و برای صفحات نمایش ldpi آن را آماده می کند.

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehiمجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامیپرداخت آنلاین -  بانک ملتمعرفی بیاموز در شبکه سهپرداخت آنلاین - بانک اقتصاد نوینپرداخت آنلاین - بانک سامان