it-swarm.asia

Android: كيفية الحصول على عرض وطول عرض مخصص؟

ممكن تكرار:
كيفية قياس عرض Android بناءً على أبعاد الوالد

كيف يمكنني استخدام getMeasuredWidth() و getMeasuredHeight؟ إنها ترجع دائمًا 0. ما هو الفرق بين هذا و getHeight() و getWidth()؟

65
Rohith Nandakumar

آسف ، هذا السؤال تم طرحه بالفعل. لقد وجدت الإجابة هنا - كيفية تغيير حجم عرض Android بناءً على أبعاد الوالد

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
    int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
    this.setMeasuredDimension(parentWidth, parentHeight);
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
54
Rohith Nandakumar

حصلت للتو على حل للحصول على ارتفاع وعرض طريقة العرض المخصصة:

@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
    super.onSizeChanged(xNew, yNew, xOld, yOld);

    viewWidth = xNew;
    viewHeight = yNew;
}

عملها في حالتي.

61
Paresh Mayani

لا تحاول الحصول عليها داخل المنشئ. حاول الاتصال بهم في طريقة onDraw().

13
Mozz

يمكنك استخدام الطريقة التالية للحصول على عرض وطول العرض ، على سبيل المثال ،

int height = yourView.getLayoutParams().height;
int width = yourView.getLayoutParams().width;

هذا يعطي القيمة المحولة للعرض المحدد في تخطيط XML.

قل إذا كانت القيمة المحددة للارتفاع هي 53dp في XML ، فستحصل على القيمة المحولة بالعدد الصحيح في 80.

13
Sam

لقد فقدت أيضًا حول getMeasuredWidth() و getMeasuredHeight()getHeight() و getWidth() لفترة طويلة .......... في وقت لاحق ، وجدت طريقة onSizeChanged() مفيدة حقًا.

نشر مدونة جديدة: كيفية الحصول على أبعاد العرض والارتفاع للعرض المخصص (يمتد العرض) في Android http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions. أتش تي أم أل

9
Syed Rakib Al Hasan

الفرق بين getHeight() و getMeasuredHeight() هو أن الطريقة الأولى ستُرجع الارتفاع الفعلي لـ View ، أما الثانية فتُرجع ارتفاعًا موجزًا ​​لأطفال View. بعبارة أخرى ، getHeight() تُرجع ارتفاع العرض ، getMeasuredHeight() تُرجع الارتفاع الذي تحتاجه طريقة العرض هذه لإظهار كل عناصرها

6
OFFmind

يحصل getheight جيدًا على الارتفاع ، ويحصل getwidth على العرض. لكنك تتصل بهذه الأساليب في وقت مبكر جدًا. إذا كنت تتصل بهم في oncreate أو onresume ، فلن يتم رسم العرض بعد. يجب أن نسميها بعد أن يتم رسم العرض.

1
Falmarri