انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل بهم ریختگی و جابجایی عناصر در دستگاه های مختلف اندروید

مشکل بهم ریختگی و جابجایی عناصر در دستگاه های مختلف اندروید

#9
قرار دادن عکس در پوشه های drawable مختلف، برای ((رزولوشن)) است، نه ((اندازه صفحه نمایش)).  من یکی از ارسال های قبلی که نوشته بودم رو تصحیح کردم (به اشتباه رزولوشن را هم ذکر کرده بودم).
یعنی ما عکس های با رزولوشن مختلف را در فولدرهای مختلف قرار می دهیم تا برای یک گوشی با رزولوشن بالا، عکس با رزولوشن بالاتری نمایش داده شود. اما در این مسئله، مثلا اگر تعیین کرده باشیم که عکس در پس زمینه ImageView نمایش داده شود، دیگر به موقعیت  ImageView بستگی دارد که با فایل های xml برای صفحه نمایش های با اندازه های مختلف مشخص کرده ایم.
در مواردی که تعیین کرده باشید که اندازه ImageView به اندازه خود محتوای آن (یعنی عکس) وابسته باشد، رزولوشن در نحوه قرارگیری ImageView تاثیر دارد، اما من خودم معمولا عکس را در پس زمینه ImageView قرار می دهم و یا اندازه  ImageView را به اندازه عکس وابسته نمی کنم.
در واقع، رزولوشن برای کیفیت مناسب عکس است و زیاد جالب نیست که نحوه قرارگیری عناصر مربوط به عکس را به گونه ای تعیین کنیم که رزولوشن در آنها تاثیرگذار باشد.
بنابراین بهتر است که یک جمع بندی در این زمینه داشته باشیم :

1- ابتدا در فولدرهای layout با نام های مختلف، فایل های xml جداگانه ای را برای ظاهر گرافیکی Activity در گوشی های با ((اندازه صفحه نمایش)) مختلف قرار می دهیم :

کد:
res/layout/layout.xml  
res/layout-small/layout.xml  
res/layout-large/layout.xml  
res/layout-xlarge/layout.xml  
res/layout-xlarge-land/layout.xml

سپس تک تک آنها را باز کرده و عناصر را مطابق میلمان می چینیم.
2- واحد dp را برای اندازه عناصر گرافیکی و واحد  sp  را برای متن به کار می بریم (واحد sp برای اندازه خود متن، نه برای اندازه TextView یا عناصری که حاوی متن هستند).
3- باید ببینیم که آیا اندازه عناصر گرافیکی موجود در لایه گرافیکی را به محتوایی که در آنها قرار می گیرد، وابسته کرده ایم یا خیر. مثلا آیا اندازه یک ImageView به عکسی که در آن قرار می گیرد وابسته است یا خیر. توصیه این است که چنین وابستگی ایجاد نکنیم (مثلا یک عکس را در پس زمینه ImageView یا Button قرار بدهیم)، اما اگر وابسته است، قرار دادن عکس با رزولوشن های مختلف، در پوشه های مختلف drawable که برای گوشی های اندروید با ((رزولوشن)) مختلف می باشند، کمک می کند که چندان ظاهر گرافیکی، در گوشی های با رزولوشن متفاوت، تغییر نکند (ولی باز هم می گویم که آنها را به رزولوشن وابسته نکنید) :

کد:
res/drawable-mdpi/icon.png
res/drawable-hdpi/icon.png
res/drawable-xhdpi/icon.png

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

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

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط kousha.nikkar


پیام‌های این موضوع
RE: مشکل بهم ریختگی و جابجایی عناصر در دستگاه های مختلف - توسط admin - ۱۳۹۳/۰۶/۲۰, ۰۱:۴۴ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 2 مهمان