سؤال

أقوم حاليًا برسم عدد من الدوائر على قماش في عرض مخصص في الكود. الدوائر ثابتة ولا تتغير. أرغب في رسمها باستخدام appedrawable في XML للمساعدة في تنظيف الكود الخاص بي. سيكون لدي عدد من السحب المختلفة التي يمكن للمستخدم تحديدها ، وبالتالي لا أريد القيام بذلك في الكود. وجود 3 أو 4 XML Drawables يبدو لي كثيرًا.

لقد قمت بإنشاء دائرة واحدة في XML باستخدام قابلة للتشكيل ، لكنني غير قادر على إضافة أكثر من شكل واحد إلى XML.

كيف يمكنني إضافة أشكال متعددة إلى مستند XML باستخدام ShapedRawable.

هل كانت مفيدة؟

المحلول 2

أعتقد أنني وجدت حلاً لإضافة أشكال متعددة إلى ملف XML الخاص بي باستخدام قائمة الطبقة. لم أجرب هذا بعد ، لكن هذا يبدو بالضبط ما أريده حيث سيتم رسم الأشكال بترتيب مؤشر الصفيف الخاص بهم.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
   <item>
      <shape>
         <solid android:color="#FFF8F8F8" />
      </shape>
   </item>
   <item android:top="23px">
      <shape>
         <solid android:color="#FFE7E7E8" />
      </shape>
   </item>
</layer-list>

مشاركة مدونة

مستندات Android

نصائح أخرى

إليكم كيف فعلت دائرة حمراء مملوءة بحدود سوداء واحدة ، برقم أبيض 72 في الوسط:

قم بإنشاء ملف XML في Res Drawable واسمه بشكل مناسب ، على سبيل المثال Red_circle_black_border.xml

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="@android:color/black" />
        </shape>
    </item>
    <item android:top="1dp" android:left="1dp" android:right="1dp" android:bottom="1dp">
        <shape android:shape="oval">
            <solid android:color="@android:color/red" />
        </shape>
    </item>
</layer-list>

ثم ، لاستخدامه في تخطيطك ، أعلن أنه على النحو التالي:

<TextView
    android:text="72"
    android:textSize="14dp"
    android:textStyle="bold"
    android:background="@drawable/red_circle_black_border" 
    android:layout_width="22dp"
    android:layout_height="22dp"
    android:gravity="center_vertical|center_horizontal"
    android:textColor="@android:color/white" />

من الواضح ، قم بتغيير النصوص والتخطيط/الارتفاع كما هو مطلوب :-)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top