آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل با کلاس Resources در پروژه 2048

Reza  10 سال پیش  10 سال پیش
0 0

سلام 

اگه یادتون باشه در پروژه 2048 برای ترسیم مربع ها از تابع convertDpToPixel برای شعاع گوشه ها استفاده میشه که در سایزهای مختلف یه جور دیده بشه .

 canvas.drawRoundRect(rect, G.convertDpToPixel(8), G.convertDpToPixel(8), paint);

و تابع convertDpToPixel به این صورت بود :

 public static float convertDpToPixel(float dp) {
        Resources resources = context.getResources();
        DisplayMetrics metrics = resources.getDisplayMetrics();
        float px = dp * (metrics.densityDpi / 160f);
        return px;
 }

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

عکس بالا پروژه استاده که خطا میگیره مال خودم هم همینطور :

 در LogCat خطا نداره ولی در Error Log :

با کلاس Resources مشکل داره ، چون وقتی کامنت میکنم و به جای densityDpi ، خودم 160 وارد میکنم مشکل حل میشه و دیزاین فایل xml رو نشون میده 

 public static float convertDpToPixel(float dp) {
        //Resources resources = context.getResources();
        //DisplayMetrics metrics = resources.getDisplayMetrics();
        float px = dp * (160 / 160f);
        return px;
 }

مشکل چیه ؟ چیکار کنم ؟ البته بازم بگم برنامه درست اجرا میشه و LogCat خطا نمیگیره ، فقط نمایش فایل xml خراب میشه .

ممنون از پاسخگویی تون . 

0 0
اگه اشتباه نکنم فکر میکنم اسم کلاستون com.uncocoder......GameView نیست باید اسم کلاس GameView تون با این یکی باشه (10 سال پیش)
0 0
پروژه خودم هم همین ایراد رو داشت ، برای اینکه مطمئن شم پروژه استاد رو هم ایمپورت کردم دیدم ، پروژه استاد رو هم ایراد میگیره . عکسایی که گرفتم بدون تغییر مال استاده . دست نخورده . (10 سال پیش)
+1 0
برخی محاسبات در برنامه نیاز به کاپایل برنامه داره و در زمان اجرا محاسبات صورت میگیره و اگر مثلا مقداری رو استفاده کردید که هنوز خالی هست خطای nullPointer در xml میگیرید باید قبل از انجام محاسبات از دستور if (isInEditMode()) استفاده کنید . (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .