تعیین طول و عرض
سایز دیوایس همون رزولوشن نیست. ممکنه یه گوشی کوچیک باشه ولی رزولوشن اون از یه تبلت بیشتر باشه. برای ما اندازه طول و عرض دیوایس مهمه. کلا ما با رزولوشن کاری نداریم.
توی کد اول رزولوشن طول و عرض رو میگیریم و با تقسیم اون بر density (یعنی همون تعداد پیکسل در هر اینچ) سایز دیوایس بدست میاد.
برای به دست آوردن رزولوشن باید از کلاس DisplayMetrics نمونه سازی کنیم که برای این کار دو تا راه هست: (ینی دو تاشو من بلتم :)) )
راه اول: از این کلاس نیو میکنیم و به صورت زیر ازش استفاده میکنیم:
در واقع انگار شی displayMetrics رو با استفاده از خط دوم مقداردهی میکنیم. اگر خط دوم رو ننویسیم مقادیر پارامترهای displayMetrics صفر هستن.
راه دوم: از طریق getResources مقدار displayMetrics رو بگیریم و خیلی راحت به فیلدهاش دسترسی داشته باشیم. این کلاس فیلدهاشو پایلیک کرده.
کلاس کمکی برای به دست آوردن طول و عرض دیوایس:
دو تا متد گتر برای دسترسی به مقدار طول و عرض ایجاد شده.
نکته اول: دقت کن که اینجا حتما باید activity پاس داده بشه و نه context. چون متد getWindowManager توسط activity در دسترس هست.
نکته دوم: کل کد توی سازنده نوشته شده تا الکی متد اضافه نشه.