افزودن گرافیک برداری چندچگالی

‫Android Studio ابزاری به‌نام Vector Asset Studio دارد که به شما کمک می‌کند نمادهای Material را اضافه کنید و فایل‌های «نگاره‌سازی برداری مقیاس‌پذیر» (SVG) و Adobe Photoshop Document (PSD) را به‌عنوان منابع ترسیم‌شدنی برداری به پروژه‌تان وارد کنید. استفاده از ترسیمی‌های برداری به‌جای نقشه‌های بیتی اندازه APK شما را کاهش می‌دهد زیرا می‌توان اندازه همان فایل را برای تراکم‌های مختلف صفحه‌نمایش بدون ازدست رفتن کیفیت تصویر تغییر داد. برای نسخه‌های قدیمی‌تر Android که از ترسیمی‌های بُرداری پشتیبانی نمی‌کنند، «استودیوی دارایی بُرداری» می‌تواند در زمان ساخت، ترسیمی‌های بُرداری شما را به اندازه‌های مختلف نقشه بیتی برای هر تراکم صفحه تبدیل کند.

درباره «استودیو دارایی بُرداری»

«استودیوی دارایی بُرداری» گرافیک بُرداری را به‌عنوان فایل XML که تصویر را توصیف می‌کند به پروژه اضافه می‌کند. نگهداری یک فایل XML می‌تواند آسان‌تر از به‌روزرسانی چندین گرافیک شطرنجی با وضوح‌های مختلف باشد.

برای استفاده از ترسیمی‌های بُرداری با Jetpack Compose، باید حداقل سطح میانای برنامه‌سازی کاربردی را روی Android 5.0 (سطح میانای برنامه‌سازی کاربردی ۲۱) و بالاتر تنظیم کنید.

Android 4.4 (سطح API‏ ۲۰) و نسخه‌های پایین‌تر از ترسیمی‌های برداری پشتیبانی نمی‌کنند. اگر حداقل سطح API شما روی یکی از این سطوح API تنظیم شده باشد، هنگام استفاده از «استودیوِ دارایی بُرداری» دو گزینه دارید: تولید فایل‌های Portable Network Graphic (PNG) (پیش‌فرض) یا استفاده از تکنیک سازگاری با نسخه قدیمی در AndroidX.

برای سازگاری با نسخه قدیمی، «استودیوی دارایی بُرداری» تصاویر شطرنجی از ترسیمی بُرداری تولید می‌کند. ترسیم‌پذیرهای برداری و شطرنجی باهم در APK بسته‌بندی می‌شوند. می‌توانید به ترسیمی‌های بُرداری به‌عنوان Drawable در کد Kotlin یا @drawable در کد XML ارجاع دهید؛ وقتی برنامه‌تان اجرا می‌شود، تصویر شطرنجی یا بُرداری مربوطه به‌طور خودکار بسته به سطح API نمایش داده می‌شود.

اگر می‌خواهید فقط از ترسیمی‌های بُرداری استفاده کنید، می‌توانید از AndroidX 1.0.0 یا بالاتر استفاده کنید. این تکنیک مستلزم تغییر در فایل build.gradle شما قبل‌از اجرای «استودیوِ دارایی بُرداری» است، همان‌طور که در AndroidX شرح داده شده است. کلاس VectorDrawableCompat در AndroidX به شما امکان می‌دهد از VectorDrawable در Android 2.1 (سطح میانای برنامه‌سازی کاربردی ۷) و بالاتر پشتیبانی کنید.

انواع گرافیک بُرداری پشتیبانی‌شده

مشخصات «طراحی مواد Google» نمادهای مواد را ارائه می‌دهد که می‌توانید در برنامه‌های Android خود استفاده کنید. «استودیوی دارایی بُرداری» به شما کمک می‌کند نمادهای Material را انتخاب، وارد، و اندازه‌بندی کنید، و همچنین تنظیمات قرینه‌سازی راست‌به‌چپ (RTL) و کدری را تعریف کنید.

«استودیوی دارایی بُرداری» همچنین به شما امکان می‌دهد فایل‌های SVG و PSD خودتان را وارد کنید. SVG یک استاندارد باز مبتنی بر XML از کنسرسیوم وب جهان‌گستر (W3C) است. قالب فایل PSD از ویژگی‌های Adobe Photoshop پشتیبانی می‌کند. «استودیوی دارایی بُرداری» از استانداردهای ضروری پشتیبانی می‌کند، اما از همه ویژگی‌های SVG و PSD پشتیبانی نمی‌کند. وقتی فایل SVG یا PSD را مشخص می‌کنید، «استودیوی دارایی بُرداری» بلافاصله بازخورد می‌دهد که آیا کد گرافیکی پشتیبانی می‌شود یا نه. این ابزار فایل را به فایل XML تبدیل می‌کند که حاوی کد VectorDrawable است. اگر خطایی دریافت کردید، باید تأیید کنید که ترسیمی بُرداری شما همان‌طور که درنظر دارید نشان داده می‌شود. برای اطلاعات بیشتر درباره ویژگی‌های مجاز PSD، به پشتیبانی و محدودیت‌های فایل‌های PSD مراجعه کنید.

برای Android نسخه ۵.۰ (سطح میانای برنامه‌سازی کاربردی ۲۱) و بالاتر، می‌توانید از کلاس AnimatedVectorDrawable برای پویانمایی ویژگی‌های کلاس VectorDrawable استفاده کنید. با AndroidX، می‌توانید از کلاس AnimatedVectorDrawableCompat برای پویانمایی کلاس VectorDrawable برای Android 3.0 (سطح میانای برنامه‌سازی کاربردی ۱۱) و بالاتر استفاده کنید. برای اطلاعات بیشتر، تصاویر بُرداری پویانمایی‌شده در Compose را ببینید.

ملاحظات مربوط به فایل‌های SVG و PSD

ترسیمی بُرداری برای نمادهای ساده مناسب است. نمادهای Material نمونه‌های خوبی از انواع تصاویری هستند که به‌عنوان ترسیمی‌های برداری در برنامه به‌خوبی کار می‌کنند. درمقابل، بسیاری از نمادهای راه‌اندازی برنامه جزئیات زیادی دارند، بنابراین به‌عنوان تصاویر شطرنجی بهتر کار می‌کنند.

بار کردن اولیه ترسیمی بُرداری می‌تواند چرخه‌های واحد پردازش مرکزی بیشتری نسبت به تصویر شطرنجی مربوطه مصرف کند. پس‌از آن، استفاده از حافظه و عملکرد بین این دو مشابه است. توصیه می‌کنیم تصویر برداری را به حداکثر ۲۰۰ × ۲۰۰ dp محدود کنید؛ درغیراین‌صورت، ممکن است ترسیم آن خیلی طول بکشد.

اگرچه ترسیمی‌های بُرداری از یک یا چند رنگ پشتیبانی می‌کنند، در بسیاری از موارد منطقی است که نمادها را سیاه (android:fillColor="#FF000000") رنگ کنید. بااستفاده از این رویکرد، می‌توانید یک سایه رنگ به ترسیمی بُرداری که در یک چیدمان قرار داده‌اید اضافه کنید و رنگ نماد به رنگ سایه رنگ تغییر می‌کند. اگر رنگ نماد سیاه نباشد، ممکن است رنگ نماد با رنگ سایه ترکیب شود.

راه‌حل‌های سازگاری با نسخه قدیمی ترسیمی بُرداری

جدول زیر دو روشی را که می‌توانید برای سازگاری با نسخه قدیمی استفاده کنید خلاصه می‌کند:

فن ترسیم‌پذیرها در APK عناصر XML از VectorDrawable نسخه پرچم‌های ساخت کد برنامه
تولید PNG برداری و شطرنجی زیرمجموعه پشتیبانی می‌شود

SVG: افزایه Android ویژه Gradle نسخه ۱.۵.۰ یا بالاتر

PSD: Android Studio 2.2 یا بالاتر

پیش‌فرض انواع تکنیک‌های کدنویسی پشتیبانی می‌شود
AndroidX نسخه ۱.۰ یا بالاتر بردار پشتیبانی کامل افزایه Android ویژه Gradle نسخه ۳.۲ یا بالاتر بیانیه‌های «کتابخانه پشتیبانی» لازم است زیرمجموعه‌ای از تکنیک‌های کدنویسی پشتیبانی می‌شود

استفاده از ترسیمی‌های برداری می‌تواند APK کوچک‌تری تولید کند، اما بار کردن اولیه ترسیمی‌های برداری ممکن است بیشتر طول بکشد.

تولید PNG

Android 5.0 (سطح میانای برنامه‌سازی کاربردی ۲۱) و بالاتر از ترسیمی بُرداری پشتیبانی می‌کند. اگر برنامه شما حداقل سطح API پایین‌تری داشته باشد، «استودیوی دارایی بُرداری» فایل ترسیمی بُرداری را به پروژه شما اضافه می‌کند؛ همچنین، در زمان ساخت، Gradle تصاویر شطرنجی PNG را با وضوح‌های مختلف ایجاد می‌کند. Gradle تراکم‌های PNG مشخص‌شده توسط ویژگی generatedDensities «زبان خاص دامنه» (DSL) را در فایل build.gradle تولید می‌کند.

برای Android 5.0 (سطح میانای برنامه‌سازی کاربردی ۲۱) و بالاتر، «استودیوی دارایی بُرداری» از همه عناصر VectorDrawable پشتیبانی می‌کند. برای سازگاری با نسخه قدیمی Android 4.4 (سطح ای‌پی‌آی ۲۰) و پایین‌تر، «استودیوی دارایی بُرداری» از عناصر XML زیر پشتیبانی می‌کند:

<vector>

  • android:width
  • android:height
  • android:viewportWidth
  • android:viewportHeight
  • android:alpha

<group>

  • android:rotation
  • android:pivotX
  • android:pivotY
  • android:scaleX
  • android:scaleY
  • android:translateX
  • android:translateY

<path>

  • android:pathData
  • android:fillColor
  • android:strokeColor
  • android:strokeWidth
  • android:strokeAlpha
  • android:fillAlpha
  • android:strokeLineCap
  • android:strokeLineJoin
  • android:strokeMiterLimit

می‌توانید کد XML را که «استودیوی دارایی بُرداری» تولید می‌کند تغییر دهید، هرچند این کار روال مطلوبی نیست. تغییر دادن مقادیر در کد نباید مشکلی ایجاد کند، به‌شرطی که معتبر و ثابت باشند. اگر می‌خواهید عناصر XML اضافه کنید، باید مطمئن شوید که براساس حداقل سطح API شما پشتیبانی می‌شوند.

AndroidX

این تکنیک به AndroidX نسخه ۱.۰ یا بالاتر و افزایه Android ویژه Gradle نسخه ۳.۲ یا بالاتر نیاز دارد و فقط از ترسیمی‌های بُرداری استفاده می‌کند. کلاس VectorDrawableCompat در AndroidX به شما امکان می‌دهد از VectorDrawable در Android 2.1 (سطح میانای برنامه‌سازی کاربردی ۷) و بالاتر پشتیبانی کنید.

قبل‌از استفاده از «استودیوی دارایی بُرداری»، باید عبارتی را به فایل build.gradle خود اضافه کنید:

کاتلین

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    implementation("androidx.appcompat:appcompat:1.7.1")
}

شیک

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.7.1'
}

درحال اجرای Vector Asset Studio

برای شروع «استودیوی دارایی بُرداری»:

  1. در Android Studio، پروژه برنامه Android را باز کنید.

  2. در پنجره پروژه، نمای Android را انتخاب کنید.

  3. روی پوشه res کلیک راست کنید و جدید > دارایی برداری را انتخاب کنید.

    برخی‌از نماها و پوشه‌های پروژه دیگر نیز این گزینه منو را دارند.

    «استودیوی دارایی بُرداری» ظاهر می‌شود.

    شکل ۱. استودیوی دارایی بُرداری.

  4. اگر به‌جای آن کادر گفتگوی به افزایه Android جدیدتری برای Gradle نیاز است نشان داده شد، نسخه Gradle خود را به‌صورت زیر اصلاح کنید:

    1. فایل > ساختار پروژه را انتخاب کنید.

    2. در کادر گفتگوی ساختار پروژه، پروژه را انتخاب کنید.

    3. در فیلد نسخه افزایه Android، افزایه Android برای نسخه Gradle را به ۱.۵.۰ یا بالاتر تغییر دهید و روی تأیید کلیک کنید.

      Gradle پروژه را همگام‌سازی می‌کند.

    4. در نمای Android پنجره پروژه، روی پوشه res کلیک راست کنید و جدید > دارایی برداری را انتخاب کنید.

      «استودیوی دارایی بُرداری» ظاهر می‌شود.

  5. با وارد کردن گرافیک بُرداری ادامه دهید.

درحال وارد کردن گرافیک بُرداری

«استودیوی دارایی بُرداری» به شما کمک می‌کند فایل گرافیک بُرداری را به پروژه برنامه‌تان وارد کنید. یکی از رویه‌های زیر را دنبال کنید:

افزودن نماد Material

پس‌از باز کردن Vector Asset Studio، می‌توانید نماد Material را به‌صورت زیر اضافه کنید:

  1. در Vector Asset Studio، Clip art را انتخاب کنید.

  2. در فیلد «قطعه هنری»، روی دکمه کلیک کنید.

  3. کادر گفتگوی انتخاب نماد ظاهر می‌شود. می‌توانید با انتخاب کردن دسته نماد از منو یا تایپ کردن در فیلد جستجو، نمادهای قابل‌مشاهده را فیلتر کنید (همان‌طور که در شکل ۲ نشان داده شده است).

    شکل ۲. فیلتر کردن نمادهای Material در «استودیوی دارایی بُرداری».

    یک نماد Material انتخاب کنید و روی تأیید کلیک کنید. نماد در پیش‌نمایش ترسیمی بُرداری نشان داده می‌شود.

  4. درصورت تمایل، نام منبع، اندازه، میزان ماتی، و تنظیم قرینه‌سازی «راست به چپ» (RTL) را تغییر دهید:

    • نام - اگر نمی‌خواهید از نام پیش‌فرض استفاده کنید، نام جدیدی تایپ کنید. اگر نام منبع ازقبل در پروژه وجود داشته باشد، «استودیوی دارایی بُرداری» به‌طور خودکار نامی منحصربه‌فرد ایجاد می‌کند (عددی به انتهای نام اضافه می‌کند). نام فقط می‌تواند حاوی نویسه‌های کوچک، زیرخط، و رقم باشد.

    • لغو کردن - اگر می‌خواهید اندازه تصویر را تنظیم کنید، این گزینه را انتخاب کنید. وقتی اندازه جدیدی را تایپ می‌کنید، تغییر در ناحیه پیش‌نمایش نشان داده می‌شود.

      پیش‌فرض ۲۴ × ۲۴ dp است که در مشخصات طراحی مواد تعریف شده است. برای بازگشت به حالت پیش‌فرض، چارگوش انتخاب را لغو انتخاب کنید.

    • ماتی - از لغزنده برای تنظیم ماتی تصویر استفاده کنید. تغییر در ناحیه پیش‌نمایش نشان داده می‌شود.

    • فعال کردن قرینه‌سازی خودکار برای چیدمان راست به چپ - اگر می‌خواهید وقتی چیدمان راست به چپ است، به‌جای چپ به راست، تصویر قرینه نمایش داده شود، این گزینه را انتخاب کنید. برای مثال، برخی زبان‌ها از راست به چپ خوانده می‌شوند؛ اگر نماد پیکان دارید، ممکن است بخواهید تصویر آینه‌ای آن را در این مورد نمایش دهید. توجه داشته باشید که اگر با پروژه قدیمی‌تری کار می‌کنید، ممکن است لازم باشد android:supportsRtl="true" را نیز به مانیفست برنامه‌تان اضافه کنید. قرینه‌سازی خودکار در Android 5.0 (سطح API‏ ۲۱) و بالاتر و با AndroidX پشتیبانی می‌شود.

  5. روی بعدی کلیک کنید.

  6. درصورت تمایل، واحد و فهرست راهنمای منبع را تغییر دهید:

    • Res Directory - مجموعه منبع منبعی را که می‌خواهید ترسیمی بُرداری به آن اضافه شود انتخاب کنید: src/main/res، src/debug/res، src/release/res، یا مجموعه منبع تعریف‌شده توسط کاربر. مجموعه منبع اصلی برای همه تنوع‌های ساخت، ازجمله اشکال‌زدایی و انتشار، اعمال می‌شود. مجموعه‌های منبع اشکال‌زدایی و انتشار، مجموعه منبع اصلی را لغو می‌کنند و بر یک نسخه از ساخت اعمال می‌شوند. مجموعه منبع اشکال‌زدایی فقط برای اشکال‌زدایی است. برای تعریف کردن مجموعه منبع جدید، فایل > ساختار پروژه > برنامه > انواع ساخت را انتخاب کنید. برای مثال، می‌توانید یک مجموعه منبع بتا تعریف کنید و نسخه‌ای از نماد ایجاد کنید که شامل نوشتار «BETA» در گوشه پایین سمت راست باشد. برای اطلاعات بیشتر، پیکربندی تنوع‌های ساخت را ببینید.

    بخش دایرکتوری‌های خروجی، ترسیمی بُرداری و دایرکتوری‌ای را که در آن نشان داده خواهد شد نمایش می‌دهد.

  7. روی پایان کلیک کنید.

    «استودیوی دارایی بُرداری» یک فایل XML را که ترسیمی بُرداری را تعریف می‌کند به پروژه در پوشه app/src/main/res/drawable/ اضافه می‌کند. از نمای Android در پنجره پروژه، می‌توانید فایل XML برداری تولیدشده را در پوشه drawable مشاهده کنید.

  8. پروژه را بسازید.

    اگر حداقل سطح میانای برنامه‌سازی کاربردی Android نسخه ۴.۴ (سطح میانای برنامه‌سازی کاربردی ۲۰) و پایین‌تر باشد و تکنیک AndroidX را فعال نکرده باشید، «استودیوی دارایی بُرداری» فایل‌های PNG تولید می‌کند. از نمای فایل‌های پروژه در پنجره پروژه، می‌توانید فایل‌های PNG و XML تولیدشده را در پوشه app/build/generated/res/pngs/debug/ مشاهده کنید.

    نباید این فایل‌های شطرنجی تولیدشده را ویرایش کنید، بلکه باید با فایل XML برداری کار کنید. سیستم ساخت، فایل‌های شطرنجی را به‌طور خودکار درصورت نیاز بازتولید می‌کند، بنابراین نیازی به نگهداری آن‌ها ندارید.

وارد کردن فایل SVG یا PSD

پس‌از باز کردن Vector Asset Studio، می‌توانید فایل SVG یا PSD را به‌صورت زیر وارد کنید:

  1. در Vector Asset Studio، Local file (فایل محلی) را انتخاب کنید.

    فایل باید در درایو محلی باشد. اگر در شبکه قرار دارد، برای مثال، ابتدا باید آن را در درایو محلی بارگیری کنید.

  2. با کلیک کردن روی …، فایل تصویری را مشخص کنید .

    تصویر در پیش‌نمایش ترسیمی برداری نشان داده می‌شود.

    اگر فایل SVG یا PSD حاوی ویژگی‌های پشتیبانی‌نشده باشد، خطایی در پایین «استودیوی دارایی بُرداری» ظاهر می‌شود، همان‌طور که در شکل ۳ نشان داده شده است.

    شکل ۳. «استودیوی دارایی بُرداری» برخی‌از خطاها را نمایش می‌دهد.

    اگر خطایی می‌بینید، باید مطمئن شوید که ترسیمی بُرداری واردشده به‌درستی رندر می‌شود. برای مشاهده خطاها، در فهرست پیمایش کنید.

    برای مشاهده فهرست عناصر پشتیبانی‌شده، به راه‌حل‌های سازگاری با نسخه قدیمی ترسیمی بُرداری مراجعه کنید. برای اطلاعات بیشتر درباره فایل‌های PSD مجاز، پشتیبانی و محدودیت‌های فایل‌های PSD را ببینید.

  3. درصورت تمایل، نام منبع، اندازه، میزان ماتی، و تنظیم قرینه‌سازی «راست به چپ» (RTL) را تغییر دهید:

    • نام - اگر نمی‌خواهید از نام پیش‌فرض استفاده کنید، نام جدیدی تایپ کنید. اگر نام منبع ازقبل در پروژه وجود داشته باشد، «استودیوی دارایی بُرداری» به‌طور خودکار نامی منحصربه‌فرد ایجاد می‌کند (عددی به انتهای نام اضافه می‌کند). نام فقط می‌تواند حاوی نویسه‌های کوچک، زیرخط، و رقم باشد.

    • لغو کردن - اگر می‌خواهید اندازه تصویر را تنظیم کنید، این گزینه را انتخاب کنید. پس‌از انتخاب آن، اندازه به اندازه خود تصویر تغییر می‌کند. هرگاه اندازه را تغییر دهید، تغییر در ناحیه پیش‌نمایش ظاهر می‌شود. پیش‌فرض ۲۴ × ۲۴ dp است که در مشخصات طراحی مواد تعریف شده است.

    • ماتی - از لغزنده برای تنظیم ماتی تصویر استفاده کنید. تغییر در ناحیه پیش‌نمایش نشان داده می‌شود.

    • فعال کردن قرینه‌سازی خودکار برای چیدمان راست به چپ - اگر می‌خواهید وقتی چیدمان راست به چپ است، به‌جای چپ به راست، تصویر قرینه نمایش داده شود، این گزینه را انتخاب کنید. برای مثال، برخی زبان‌ها از راست به چپ خوانده می‌شوند؛ اگر نماد پیکان دارید، ممکن است بخواهید در این مورد تصویر آینه‌ای آن را نمایش دهید. توجه داشته باشید که اگر با پروژه قدیمی‌تری کار می‌کنید، ممکن است لازم باشد android:supportsRtl="true" را به مانیفست برنامه‌تان اضافه کنید. قرینه‌سازی خودکار در Android نسخه ۵.۰ (سطح API‏ ۲۱) و بالاتر، و AndroidX پشتیبانی می‌شود.

  4. روی بعدی کلیک کنید.

  5. درصورت تمایل، فهرست راهنمای منبع را تغییر دهید:

    • Res Directory - مجموعه منبع منبعی را که می‌خواهید ترسیمی بُرداری به آن اضافه شود انتخاب کنید: src/main/res، src/debug/res، src/release/res، یا مجموعه منبع تعریف‌شده توسط کاربر. مجموعه منبع اصلی برای همه تنوع‌های ساخت، ازجمله اشکال‌زدایی و انتشار، اعمال می‌شود. مجموعه‌های منبع اشکال‌زدایی و انتشار مجموعه منبع اصلی را لغو می‌کنند و برای یک نسخه از ساخت اعمال می‌شوند. مجموعه منبع اشکال‌زدایی فقط برای اشکال‌زدایی است. برای تعریف کردن مجموعه منبع جدید، فایل > ساختار پروژه > برنامه > انواع ساخت را انتخاب کنید. برای مثال، می‌توانید یک مجموعه منبع بتا تعریف کنید و نسخه‌ای از یک نماد ایجاد کنید که شامل متن «BETA» در گوشه پایین سمت راست باشد. برای اطلاعات بیشتر، پیکربندی تنوع‌های ساخت را ببینید.

    بخش دایرکتوری‌های خروجی، ترسیمی بُرداری و دایرکتوری‌ای را که در آن نشان داده خواهد شد نمایش می‌دهد.

  6. روی پایان کلیک کنید.

    «استودیوی دارایی بُرداری» یک فایل XML را که ترسیمی بُرداری را تعریف می‌کند به پروژه در پوشه app/src/main/res/drawable/ اضافه می‌کند. از نمای Android در پنجره پروژه، می‌توانید فایل XML برداری تولیدشده را در پوشه drawable مشاهده کنید.

  7. پروژه را بسازید.

    اگر حداقل سطح میانای برنامه‌سازی کاربردی Android نسخه ۴.۴ (سطح میانای برنامه‌سازی کاربردی ۲۰) و پایین‌تر باشد و تکنیک AndroidX را فعال نکرده باشید، «استودیوی دارایی بُرداری» فایل‌های PNG تولید می‌کند. از نمای فایل‌های پروژه در پنجره پروژه، می‌توانید فایل‌های PNG و XML تولیدشده را در پوشه app/build/generated/res/pngs/debug/ مشاهده کنید.

    نباید این فایل‌های شطرنجی تولیدشده را ویرایش کنید، بلکه باید با فایل XML برداری کار کنید. سیستم ساخت، فایل‌های شطرنجی را به‌طور خودکار درصورت نیاز بازتولید می‌کند، بنابراین نیازی به نگهداری آن‌ها ندارید.

ارجاع دادن به دارایی برداری در Jetpack Compose

پس‌از استفاده از «استودیوی دارایی بُرداری» برای افزودن دارایی به پوشه res/drawable ، می‌توانید در کدتان به آن ارجاع دهید.

در Jetpack Compose، رایج‌ترین روش برای نمایش بردار استفاده از Icon یا Image composable است.

ترکیب‌پذیر Icon روش استاندارد برای نمایش دارایی‌های کوچک و تک‌رنگ است. این ویژگی پشتیبانی داخلی برای اصول «طراحی مواد» ارائه می‌دهد، مانند اعمال رنگ‌آمیزی پویا براساس زمینه‌های Material 3 و دسترس‌پذیری خودکار ازطریق شرح محتوا.

از painterResource API برای ارائه دارایی‌های برداری XML به composable استفاده کنید:

Icon(
    painter = painterResource(id = R.drawable.ic_speedometer),
    tint = MaterialTheme.colorScheme.primary, // Applies dynamic theme color
    contentDescription = "Current Speed", // Essential for accessibility
)

برای بردارهای پیچیده و چندرنگ، از ترکیب‌پذیر Image استفاده کنید:

Image(
     painter = painterResource(id = R.drawable.ic_complex_vector),
     contentDescription = null // Decorative element
)

برای سناریوهای پیچیده دیگر، مثل سفارشی‌سازی تصویر یا بهینه‌سازی عملکرد، به کار با تصاویر مراجعه کنید. برای پویانمایی بردارها، به تصاویر برداری پویانمایی‌شده در Compose مراجعه کنید.

اصلاح کد XML تولیدشده توسط «استودیو دارایی بُرداری»

می‌توانید کد XML ترسیمی بُرداری را تغییر دهید، اما نمی‌توانید PNGها و کد XML مربوطه را که در زمان ساخت تولید شده‌اند تغییر دهید. بااین‌حال، این کار را توصیه نمی‌کنیم.

هنگام استفاده از تکنیک تولید PNG، «استودیوی دارایی بُرداری» مطمئن می‌شود که ترسیمی بُرداری و PNGها مطابقت دارند و مانیفست حاوی کد مناسب است. اگر کدی اضافه کنید که در Android نسخه ۴.۴ (سطح API‏ ۲۰) و پایین‌تر پشتیبانی نمی‌شود، ممکن است تصاویر برداری و PNG شما متفاوت باشد. همچنین باید مطمئن شوید که مانیفست حاوی کد پشتیبانی از تغییرات شما باشد.

برای اصلاح فایل XML برداری وقتی از تکنیک AndroidX استفاده نمی‌کنید:

  1. در پنجره پروژه، روی فایل XML برداری تولیدشده در پوشه drawable دوکلیک کنید.

    فایل XML در پنجره‌های ویرایشگر و پیش‌نمایش ظاهر می‌شود.

    شکل ۴. فایل XML برداری نمایش‌داده‌شده در «ویرایشگر کد» و پنجره «پیش‌نمایش».

  2. کد XML را براساس آنچه توسط حداقل سطح میانای برنامه‌سازی کاربردی پشتیبانی می‌شود ویرایش کنید:

    • ‫Android نسخه ۵.۰ (سطح ای‌پی‌آی ۲۱) و بالاتر - «استودیوی دارایی بُرداری» از همه عناصر Drawable و VectorDrawable پشتیبانی می‌کند. می‌توانید عناصر XML اضافه کنید و مقادیر را تغییر دهید. برای Jetpack Compose، می‌توانید ترسیمی بُرداری را برای سفارشی‌سازی بیشتر در ImageVector بار کنید.

    • Android 4.4 (سطح میانای برنامه‌سازی کاربردی ۲۰) و پایین‌تر - «استودیوی دارایی بُرداری» از همه عناصر Drawable و زیرمجموعه‌ای از عناصر VectorDrawable پشتیبانی می‌کند. برای مشاهده فهرست، به راه‌حل‌های سازگاری با نسخه قدیمی ترسیمی بُرداری مراجعه کنید. می‌توانید مقادیر را در کد تولیدشده تغییر دهید و عناصر XML پشتیبانی‌شده را اضافه کنید.

  3. پروژه را بسازید و بررسی کنید که ترسیمی بُرداری و تصاویر شطرنجی مربوطه یکسان به‌نظر برسند.

    به‌یاد داشته باشید که PNGهای تولیدشده ممکن است به‌دلیل موتورهای پردازشی متفاوت و هرگونه تغییراتی که قبل‌از ساخت در ترسیمی بُرداری ایجاد شده است، در پنجره پیش‌نمایش متفاوت از برنامه نمایش داده شوند. اگر به فایل XML برداری ایجادشده توسط «استودیو دارایی برداری» کد اضافه کنید، ویژگی‌های پشتیبانی‌نشده در Android نسخه ۴.۴ (سطح API‏ ۲۰) و پایین‌تر در فایل‌های PNG تولیدشده نشان داده نمی‌شود. درنتیجه، وقتی کد اضافه می‌کنید، همیشه باید بررسی کنید که PNGهای تولیدشده با ترسیمی بُرداری مطابقت داشته باشند. برای انجام این کار، می‌توانید روی PNG در نمای فایل‌های پروژه در پنجره پروژه دوکلیک کنید؛ حاشیه سمت چپ «ویرایشگر کد» نیز تصویر PNG را وقتی کدتان به drawable ارجاع می‌دهد، همان‌طور که در شکل ۵ نشان داده شده است، نمایش می‌دهد.

    شکل ۵. تصویر PNG که در حاشیه سمت راست «ویرایشگر کد» نمایش داده می‌شود.

حذف ترسیمی بُرداری از پروژه

برای برداشتن ترسیمی بُرداری از پروژه:

  1. در پنجره پروژه، فایل XML برداری تولیدشده را با انتخاب فایل و فشار دادن کلید حذف (یا انتخاب ویرایش > حذف) حذف کنید.

    کادر گفتگوی حذف ایمن ظاهر می‌شود.

  2. درصورت تمایل، گزینه‌هایی را انتخاب کنید تا ببینید فایل در کجای پروژه استفاده شده است، و روی تأیید کلیک کنید.

    «استودیو Android» فایل را از پروژه و درایو حذف می‌کند. بااین‌حال، اگر انتخاب کنید که مکان‌هایی در پروژه که از فایل استفاده شده است جستجو شود و چند مورد استفاده پیدا شود، می‌توانید آن‌ها را مشاهده کنید و تصمیم بگیرید که فایل را حذف کنید یا نه.

  3. Build > Clean Project را انتخاب کنید.

    هر فایل PNG و XML خودکار تولیدشده که با ترسیمی بُرداری حذف‌شده مطابقت داشته باشد از پروژه و درایو برداشته می‌شود.

ارائه برنامه‌ای که حاوی ترسیمی‌های بُرداری است

اگر از تکنیک AndroidX استفاده کرده‌اید یا حداقل سطح API شما Android 5.0 (سطح API‏ ۲۱) یا بالاتر است، APK شما حاوی ترسیمی‌های بُرداری خواهد بود که با «استودیوی دارایی بُرداری» اضافه کرده‌اید. این APKها کوچک‌تر از زمانی خواهند بود که تصاویر برداری به PNG تبدیل شده باشند.

وقتی حداقل سطح میانای برنامه‌سازی کاربردی شما شامل Android 4.4 (سطح میانای برنامه‌سازی کاربردی ۲۰) یا پایین‌تر باشد، و ترسیمی‌های برداری و تصاویر شطرنجی متناظر در پروژه‌تان داشته باشید، دو گزینه برای ارائه فایل‌های APK دارید:

  • یک APK ایجاد کنید که هم شامل ترسیمی‌های برداری و هم نمایش‌های شطرنجی مربوطه باشد. این راه‌حل ساده‌ترین روش برای اجرا است.
  • APKهای جداگانه‌ای برای سطوح مختلف API ایجاد کنید. وقتی تصاویر شطرنجی مربوطه را در APK برای Android 5.0 (سطح میانای برنامه کاربردی ۲۱) و بالاتر اضافه نکنید، APK می‌تواند اندازه بسیار کوچک‌تری داشته باشد. برای اطلاعات بیشتر، پشتیبانی از چند APK را ببینید.

پشتیبانی و محدودیت‌های فایل‌های PSD

«استودیوی دارایی بُرداری» از همه ویژگی‌های فایل PSD پشتیبانی نمی‌کند. فهرست زیر ویژگی‌های PSD پشتیبانی‌شده و پشتیبانی‌نشده و همچنین برخی جزئیات تبدیل را خلاصه می‌کند.

سند

پشتیبانی‌شده:

  • حالت رنگ PSD از نوع bitmap،‏ grayscale،‏ indexed،‏ RGB،‏ Lab، یا CMYK.
  • عمق رنگ ۸، ۱۶، یا ۳۲ بیت.

جزئیات تبدیل:

  • ابعاد سند PSD به ابعاد ترسیمی بُرداری و ناحیه نمایش تبدیل می‌شود.

پشتیبانی‌نشده:

  • حالت رنگ PSD از نوع دورنگ یا چندکاناله.

شکل‌ها

پشتیبانی‌شده:

  • ماسک‌های برش، اگر پایه برش شکل دیگری باشد.
  • عملیات شکل، ازجمله ادغام/افزودن، تقاطع، تفریق، و مستثنی کردن.

پشتیبانی‌نشده:

  • قانون پر کردن زوج-فرد که توسط شکل‌های Photoshop استفاده می‌شود. در Android نسخه ۶.۰ (سطح میانای برنامه کاربردی ۲۳) و پایین‌تر، ترسیمی‌های برداری فقط از قانون پر کردن غیرصفر پشتیبانی می‌کنند. در شکل‌های خودمتداخل، این محدودیت می‌تواند منجر به تفاوت‌های پردازشی بین PSD و ترسیمی بُرداری حاصل شود. برای رفع این مشکل، android:fillType="evenOdd" را به شکل در ترسیمی بُرداری اضافه کنید. برای مثال:

    <vector xmlns:android="https://schemas.android.com/apk/res/android"
      android:viewportHeight="168"
      android:height="24dp"
      android:viewportWidth="209"
      android:width="24dp">
    
      <path
          android:fillAlpha="1.0"
          android:fillColor="#000000"
          android:fillType="evenOdd"
          android:pathData="M24,58 L24,167 L114,167 L114,66 M64,1 L64,96 L208,96 L208,8 M1,97 L146,139 L172,47"/>
    </vector>

خطوط و رنگ‌آمیزی‌ها

پشتیبانی‌شده:

  • ضرب‌قلم‌ها، ازجمله رنگ، ماتی، پهنا، اتصال، کلاهک، خط‌چین، و تراز.
  • رنگ‌های پرکننده و قلم‌ضربه‌های یکدست.
  • رنگ‌های قلم‌ضربه و پرکننده که به‌صورت RGB،‏ Lab، یا CMYK مشخص شده‌اند.

جزئیات تبدیل:

  • اگر خطی خط‌چین باشد، بااستفاده از پایه برش بریده شده باشد، یا از تراز متفاوتی با مرکز استفاده کند، «استودیوی دارایی بُرداری» آن را به شکل توپر در ترسیمی بُرداری تبدیل می‌کند.

پشتیبانی‌نشده:

  • رنگ‌آمیزی و قلم‌ضربه غیرتک‌رنگ، مثل گرادیان.

ماتی

پشتیبانی‌شده:

  • لایه‌های شکل با ماتی ۰.

جزئیات تبدیل:

  • Vector Asset Studio ماتی پرکننده را در ماتی لایه ضرب می‌کند تا آلفای پرکننده را محاسبه کند.
  • این ابزار کدری پایه برش (اگر پایه برش وجود داشته باشد) را در آلفای پر کردن ضرب می‌کند تا آلفای پر کردن نهایی را محاسبه کند.
  • این ابزار ماتی ضرب‌قلم را در ماتی لایه ضرب می‌کند تا آلفای ضرب‌قلم را محاسبه کند.
  • این ابزار کدری پایه برش (اگر پایه برش وجود داشته باشد) را در آلفای خط ضرب می‌کند تا آلفای خط نهایی را محاسبه کند.

لایه‌ها

پشتیبانی‌شده:

  • هر لایه شکل نمایان.

جزئیات تبدیل:

  • «استودیوی دارایی بُرداری» نام لایه‌ها را در فایل ترسیمی بُرداری حفظ می‌کند.

پشتیبانی‌نشده:

  • جلوه‌های لایه‌ای.
  • لایه‌های نوشتار و تنظیم.
  • حالت‌های ادغام (نادیده گرفته شد).

پشتیبانی و محدودیت‌های فایل‌های SVG

«استودیوی دارایی بُرداری» از همه ویژگی‌های فایل SVG پشتیبانی نمی‌کند. بخش زیر ویژگی‌های پشتیبانی‌شده و پشتیبانی‌نشده را هنگام تبدیل فایل SVG به VectorDrawable توسط ابزار به‌همراه جزئیات تبدیل اضافی خلاصه می‌کند.

ویژگی‌های پشتیبانی‌شده

VectorDrawable از همه ویژگی‌های Tiny SVG 1.2 به‌جز نوشتار پشتیبانی می‌کند.

شکل‌ها

VectorDrawable از مسیرهای SVG پشتیبانی می‌کند.

این ابزار شکل‌های اولیه مانند دایره، مربع، و چندضلعی را به مسیر تبدیل می‌کند.

تبدیل‌ها

این ابزار از ماتریس‌های تبدیل پشتیبانی می‌کند و آن‌ها را مستقیماً روی مسیرهای فرزند اعمال می‌کند.

گروه‌های Google

این ابزار از عناصر گروهی برای ترجمه، مقیاس‌بندی، و چرخش پشتیبانی می‌کند. گروه‌ها از ویژگی کدر بودن پشتیبانی نمی‌کنند.

این ابزار همچنین هرگونه سبک‌بندی یا شفافیت گروهی را برای مسیرهای فرزند اعمال می‌کند.

پر کردن و قلم‌زدن

مسیرها را می‌توان بااستفاده از رنگ‌های یکدست یا گرادیان‌ها (خطی، شعاعی، یا زاویه‌ای) پر کرد و خط‌کشی کرد. فقط از قلم‌ضربه‌های متمرکز پشتیبانی می‌شود. حالت‌های ترکیب پشتیبانی نمی‌شود. مسیرهای خط‌چین پشتیبانی نمی‌شود.

نقاب

این ابزار از یک ماسک برش در هر گروه پشتیبانی می‌کند.

ویژگی‌هایی که واردکننده SVG از آن‌ها پشتیبانی نمی‌کند

هر ویژگی‌ای که در بخش ویژگی‌های پشتیبانی‌شده در بالا فهرست نشده باشد، پشتیبانی نمی‌شود. ویژگی‌های پشتیبانی‌نشده قابل‌توجه شامل موارد زیر است:

  • جلوه‌های فیلتر: جلوه‌هایی مانند سایه‌دار، محو کردن، و ماتریس رنگ پشتیبانی نمی‌شوند.
  • نوشتار: توصیه می‌شود برای تبدیل نوشتار به شکل از ابزارهای دیگر استفاده کنید.
  • پر کردن الگو

منابع بیشتر

برای اطلاعات بیشتر درباره گرافیک بُرداری، منابع تکمیلی زیر را ببینید:

اسناد

محتوا را مشاهده می‌کند