بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل با کلاس Resources در پروژه 2048
سلام
اگه یادتون باشه در پروژه 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 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .