كيفية قياس عرض مخصص تلقائيًا باستخدام ShapeDrawables؟
-
21-12-2019 - |
سؤال
أنا أكتب عرضًا مخصصًا لتطبيق Android الخاص بي، والذي يتكون من عدة ShapeDrawables
.بالنسبة لهذه الرسوميات، لا بد لي من تحديد الأبعاد باستخدام setBounds()
.الآن، سيكون العرض الخاص بي دائمًا مربعًا، ولكنني أريده أن يستخدم أكبر قدر من المساحة التي أسمح بها داخل الأصل حيث تم تضمينه.
لذا، الآن أتصل setBounds()
مع بعض القيم الثابتة، ولكن عندما أحددها android:layout_width
و android:layout_height
, ، أريد بلدي ShapeDrawables
ليتم تحجيمها بحيث تظهر بأكبر حجم ممكن.
كيف يمكنني تحقيق ذلك ضمن فئة العرض المخصصة الخاصة بي؟
المحلول
وجدته بنفسي:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
mSize = Math.min(width, height);
setMeasuredDimension(mSize, mSize);
}
لا تنتمي إلى StackOverflow