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

دستور super.onDraw در متد onDraw ؟

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

سلام

من از آموزش های بخش 13 ( کنترل های سفارشی ) متوجه شدم که دستور :

 super.onDraw(canvas);

در متد onDraw صفحه رو پاک میکنه ، و دستورات بعدی باعث ترسیم دوباره canvas میشه . و همینطور هم بود . اما الان برای انیمیشن نمیدونم چرا بود و نبودش فرقی نمیکنه :

در یک متد این دستور رو نوشتم :

 while (i < 100) {
             try {
                 thread.sleep(10);
                 calculateRectForAnim(3 * i, 100);
                 postInvalidate();
                 i++;
             }
             catch (InterruptedException e) {
                 e.printStackTrace();
             }
}

یعنی پشت سر هم invalidate کردم ، و متد onDraw به این صورته :

 @Override
    protected void onDraw(final Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawRoundRect(rect, size / 10, size / 10, paint);
 }

حالا اگه دستور super رو کامنت کنم مگه نباید ترسیم های قبلی باقی بمونه و مربع ها روی هم جمع بشن ؟ چون وقتی کامنت میکنم باز هم انگار مربع قبلی پاک میشه و جدیده رسم میشه . میشه لطفا بگید دلیلش چیه ؟

ممنون .

 

0 0
دستور super کار رسم رو انجام میده و اگر حذفش کنید چیزی رسم نخواهد شد . (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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