سؤال

أنا أكتب عرضًا مخصصًا لتطبيق 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);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top