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

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

  • به طور کلی چهار اندازه برای صفحات نمایش وجود دارد: کوچک (small)، عادی (normal)، بزرگ (large)، و خیلی بزرگ (xlarge)

 و چهار اندازه ی کلی نیز برای تراکم وجود دارد: کم (low یا ldpi)، متوسط (medium یا mdpi)، بالا (high یا hdpi) بسیار بالا (extra high یا xdpi)

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


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

MyProject/

   res/

       layout/

           main.xml

       layout-large/

           main.xml

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

به سادگی به فایل چیدمان برنامه می توان رجوع کرد مانند مثال زیر :

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

اندروید به صورت خودکار فایل را بر اساس صفحه نمایش مورد نظر از پوشه res بر می دارد.
همان طور که در مثال زیر امده است، دارای چیدمان برای نمای افقی (landscape) می باشد:

MyProject /
        Res   /
                 main.xml Layout     / 
          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

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

    ایجاد Bitmapهای متفاوت
شما می بایست همواره منابع bitmap مختلفی  فراهم کنید که به هریک از تراکم های عمومی (پایین، متوسط، بالا و بسیار بالا) به صورت متناسب مقیاس پذیر باشند. این امر باعث می شود شما به کیفیت خوب گرافیکی و عملکرد بالا روی تراکم های مختلف صفحه نمایش دست پیدا کنید.
برای ایجاد چنین تصاویری، از منابع خام خود در فرمت وکتور (بردار) شروع کنید و تصاویری را برای هر تراکم با استفاده از مقیاس های زیر ایجاد کنید
xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (پایه)
ldpi: 0.75

 

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

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

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

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

منبع : https://developer.android.com/training/basics/supporting-devices/screens.html

 

 

 

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید

تماس با آموزشگاه

جوملا فارسی