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

Custom Control (کنترل های سفارشی)

Criss  11 سال پیش  11 سال پیش
+1 0

سلام دوستان من توی قسمت 13-2 یک قسمت از سورس رو بخوبی متوجه نشدم

 @Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

RectF rect = new RectF();
rect.left = 0 + STROKE_WIDTH;
rect.right = getWidth() - STROKE_WIDTH;
rect.top = 0 + STROKE_WIDTH;
rect.bottom = getHeight() - STROKE_WIDTH;
//canvas.drawCircle(getWidth() / 2, getHeight() / 2, getWidth() / 2, circlepaint);
canvas.drawArc(rect, -90, 90, false, circlepaint);
canvas.drawText("100%", getWidth() / 2, getHeight() / 2, textpaint);

}

و دقیقا دستورات زیر هست که مرکز رسم کجاست ؟ خطوط از کجا شروع به رسم میشه ؟
فاصله هایی که از اطراف میدیم چجوری تاثیر میزاره ؟نقطه 0 و 0 x,y دقیقا کجاست ؟ چرا من مقادیر رو تغییر میدم کلا هر بار یچیزی بدست میاد که نیشه منطقش رو فهمید ؟

 rect.left = 0;
rect.right = getWidth();
rect.top = 0;
rect.bottom = getHeight();

 

+1 0
اون نقطه ای که گفتی میشه شمال غرب ویو :) (11 سال پیش)
0 0
اگر بشه شمال غرب و ما اون رو بصورت بردار فرض کنیم روی بردار Y اعداد بصورت منفی میشه اما اینجا منفی در نظر گرفته نمیشه (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Criss  11 سال پیش
0 0

مختصات بردار X , Y

             +Y
|
|
|
|
-X___________|___________+X
|
|
|
|
|
-Y

مختصات  ImageView (شمال غرب)

 _____________+X
|
|
|
|
|
|
+Y

درست متوجه شدم؟

حالا نقش کد های زیر چی هست ؟

 rect.left = 0;
rect.right = getWidth();
rect.top = 0;
rect.bottom = getHeight();

 


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