Kotlin Android Fundamentals 10.1: Styles and themes

این کد لبه بخشی از دوره آموزشی Android Kotlin Fundamentals است. اگر به ترتیب روی کدها کار کنید، بیشترین ارزش را از این دوره خواهید گرفت. همه کد لبه های دوره در صفحه فرود کد لبه های Android Kotlin Fundamentals فهرست شده اند.

مقدمه ای بر طراحی

تمرکز در این سری از نرم افزارهای کد روی یکی از مهمترین جنبه های توسعه اندروید یعنی طراحی اپلیکیشن است. جنبه های واضح طراحی اپلیکیشن عبارتند از نماها، متن و دکمه ها و محل قرارگیری آنها بر روی صفحه و همچنین رنگ ها و فونت هایی که استفاده می کنند. نکاتی به کاربر در مورد کارهای بعدی نیز یکی از جنبه های ضروری طراحی است. کاربران باید بتوانند در یک نگاه بگویند به چه چیزی نگاه می کنند، چه چیزی مهم است و چه کاری می توانند انجام دهند.

دو صفحه زیر را مقایسه کنید. توجه داشته باشید که با حرکت دادن عناصر به اطراف و تمرکز بر موارد مهم، می توانید به کاربر کمک کنید تا بفهمد چه اتفاقی در حال رخ دادن است. برای صفحه نمایش های ساده، طراحی خوب اغلب به معنای نمایش کمتر است. برای صفحه نمایش هایی که اطلاعات مهم زیادی دارند، طراحی خوب اطلاعات متراکم را در یک نگاه قابل درک می کند. همانطور که روی برنامه های اندروید کار می کنید، ممکن است این مفهوم به نام معماری اطلاعات (IA) را بشنوید.

سطح دیگری از طراحی ایجاد جریان های کاربری منسجم یا موارد استفاده است که به کاربران اجازه می دهد وظایف را انجام دهند. این شکل از طراحی ، طراحی تجربه کاربری (UXD) نامیده می شود و برخی از طراحان در آن تخصص دارند.

اگر به طراح دسترسی ندارید، در اینجا چند نکته برای شروع وجود دارد:

  • موارد استفاده را تعریف کنید. بنویسید که کاربران باید با برنامه شما چه کاری انجام دهند و چگونه.
  • یک طرح را اجرا کنید. به اولین پیش نویس خود متصل نشوید و فقط آن را «به اندازه کافی خوب» بسازید، زیرا پس از اینکه مشاهده کردید کاربران واقعی چگونه با آن تعامل دارند، آن را تغییر خواهید داد.
  • بازخورد دریافت کنید. هر کسی را پیدا کنید که بتوانید با آنها صحبت کنید و برنامه خود را آزمایش کنند - خانواده، دوستان یا حتی افرادی که به تازگی در یک گروه برنامه نویس Google با آنها آشنا شده اید. از آنها بخواهید هنگام تماشای شما و یادداشت برداری دقیق از برنامه شما برای اجرای یک مورد استفاده استفاده کنند.
  • پالایش کنید! با تمام این اطلاعات، برنامه را بهتر کنید و سپس دوباره آن را تست کنید.

در اینجا چند سؤال دیگر وجود دارد که باید هنگام طراحی یک برنامه عالی از خود بپرسید. شما تکنیک هایی را برای مقابله با این مسائل در کدهای قبلی یاد گرفتید:

  • آیا وقتی کاربر دستگاه خود را می چرخاند، برنامه حالت خود را از دست می دهد؟
  • وقتی کاربر برنامه را باز می کند چه اتفاقی می افتد؟ آیا کاربر یک اسپینر در حال بارگذاری را می بیند یا داده ها در یک کش آفلاین آماده هستند؟
  • آیا برنامه به گونه ای کدگذاری شده است که کارآمد باشد و اطمینان حاصل کند که برنامه همیشه به لمس کاربر پاسخ می دهد؟
  • آیا برنامه به گونه ای با سیستم های پشتیبان تعامل دارد که هرگز منجر به ارائه داده های عجیب و غریب، نادرست یا قدیمی به کاربر نشود؟

همانطور که روی برنامه‌هایی برای مخاطبان بزرگ‌تر کار می‌کنید، ضروری است که برنامه‌های خود را تا حد امکان برای انواع مختلف کاربران در دسترس قرار دهید. به عنوان مثال:

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

طراحی خوب مهمترین راه برای استفاده کاربران از برنامه شما است.

این کدها برای آموزش همه چیز در مورد طراحی برای اندروید بسیار کوتاه هستند، اما شما را در مسیر خوبی شروع می کنند و می توانید خودتان به یادگیری و توسعه ادامه دهید.

آنچه از قبل باید بدانید

باید با:

  • نحوه ایجاد برنامه هایی با فعالیت ها و قطعات، و پیمایش بین قطعاتی که داده ها را ارسال می کنند
  • استفاده از نماها و گروه‌های مشاهده برای چیدمان رابط کاربری (UI)، از جمله RecyclerView
  • نحوه استفاده از اجزای معماری، از جمله ViewModel ، با معماری توصیه شده برای ایجاد یک برنامه با ساختار و کارآمد
  • اتصال داده ها، برنامه های مشترک و نحوه مدیریت کلیک ها
  • نحوه اتصال به اینترنت و ذخیره اطلاعات به صورت محلی با استفاده از پایگاه داده Room
  • نحوه تنظیم مشخصات view
  • نحوه استخراج منابع و استفاده از منابع از فایل های منبع XML

چیزی که یاد خواهید گرفت

  • اصول اولیه سیستم استایل اندروید
  • چگونه از ویژگی ها، سبک ها و تم ها برای سفارشی کردن برنامه خود استفاده کنید

کاری که خواهی کرد

  • طراحی یک برنامه شروع کننده را با ویژگی های مشاهده، سبک ها و تم ها بهبود دهید

برنامه شروع GDG-finder بر اساس همه چیزهایی است که تاکنون در این دوره یاد گرفته اید.

این برنامه از ConstraintLayout برای چیدمان سه صفحه استفاده می کند. دو تا از صفحه‌ها فقط فایل‌های طرح‌بندی هستند که از آن‌ها برای کاوش رنگ‌ها و متن در اندروید استفاده می‌کنید.

صفحه سوم یک یاب GDG است. GDGها یا Google Developer Groups، جوامعی از توسعه‌دهندگان هستند که بر فناوری‌های Google از جمله Android تمرکز می‌کنند. GDG ها در سراسر جهان میزبان جلسات، کنفرانس ها، برنامه های آموزشی و رویدادهای دیگر هستند.

همانطور که این برنامه را توسعه می دهید، روی لیست واقعی GDG کار می کنید. صفحه یاب از مکان دستگاه برای مرتب کردن GDG ها بر اساس فاصله استفاده می کند.

اگر خوش شانس هستید و GDG در منطقه شما وجود دارد، می توانید وب سایت را بررسی کنید و برای رویدادهای آنها ثبت نام کنید! رویدادهای GDG راهی عالی برای ملاقات با سایر توسعه دهندگان اندروید و یادگیری بهترین شیوه های صنعت است که در این دوره نمی گنجد.

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

اندروید یک سیستم ظاهری غنی ارائه می دهد که به شما امکان می دهد ظاهر همه نماهای برنامه خود را کنترل کنید. می‌توانید از تم‌ها، سبک‌ها و ویژگی‌های مشاهده برای تأثیرگذاری بر استایل استفاده کنید. نمودار نشان داده شده در زیر، تقدم هر یک از روش های یک ظاهر طراحی را به طور خلاصه نشان می دهد. نمودار هرمی ترتیب اعمال روش‌های یک ظاهر طراحی شده توسط سیستم را از پایین به بالا نشان می‌دهد. به عنوان مثال، اگر اندازه متن را در طرح زمینه تنظیم کنید، و سپس اندازه متن را در ویژگی های view به طور متفاوتی تنظیم کنید، ویژگی های view بر سبک طرح زمینه لغو می شوند.

مشاهده ویژگی ها

  • از ویژگی های view برای تنظیم مشخصه ها برای هر نما استفاده کنید. (ویژگی های View مانند سبک ها قابل استفاده مجدد نیستند.)
  • شما می توانید از هر ویژگی که می تواند از طریق سبک ها یا تم ها تنظیم شود استفاده کنید.

برای طرح های سفارشی یا تکی مانند حاشیه ها، بالشتک ها یا محدودیت ها استفاده کنید.

سبک ها

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

یک استایل را برای چندین نما اعمال کنید و سبک پیش فرض را لغو کنید. به عنوان مثال، از یک سبک برای ایجاد هدرهایی با استایل ثابت یا مجموعه ای از دکمه ها استفاده کنید.

سبک پیش فرض

  • این استایل پیش فرض ارائه شده توسط سیستم اندروید است.

تم ها

  • از یک تم برای تعریف رنگ برای کل برنامه خود استفاده کنید.
  • از یک تم برای تنظیم فونت پیش فرض برای کل برنامه استفاده کنید.
  • برای همه نماها اعمال شود، مانند نماهای متنی یا دکمه های رادیویی.
  • برای پیکربندی ویژگی هایی که می توانید به طور مداوم برای کل برنامه اعمال کنید، استفاده کنید.

ظاهر متن

  • فقط برای استایل‌سازی با ویژگی‌های متن، مانند fontFamily .

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

تصاویر زیر برنامه GDG-finder را با تم روشن (سمت چپ) و تم تیره (راست)، و همچنین با فونت و اندازه های سرصفحه سفارشی نشان می دهد. این را می توان به روش های مختلفی پیاده سازی کرد و برخی از آنها را در این کد لبه یاد می گیرید.

در این کار، از ویژگی‌ها برای استایل دادن به هدرها برای متن در طرح‌بندی برنامه استفاده می‌کنید.

  1. برنامه شروع GDG-finder را دانلود و اجرا کنید.
  2. توجه داشته باشید که صفحه اصلی دارای تعداد زیادی متن با فرمت یکنواخت است که تشخیص اینکه صفحه مربوط به چه چیزی است و چه چیزی مهم است دشوار است.
  3. فایل layout home_fragment.xml را باز کنید.
  4. توجه داشته باشید که طرح از ConstraintLayout برای قرار دادن عناصر در داخل یک ScrollView استفاده می کند.
  5. توجه داشته باشید که برای هر نما، ویژگی های محدودیت و طرح حاشیه در نما تنظیم شده است، زیرا این ویژگی ها تمایل دارند برای هر نما و صفحه سفارشی شوند.
  6. در نمای متن title ، یک ویژگی textSize اضافه کنید تا اندازه متن را به 24sp تغییر دهید.

    به عنوان یادآوری، sp مخفف پیکسل‌های مستقل از مقیاس است که هم بر اساس تراکم پیکسل و هم ترجیحات اندازه قلمی که کاربر در تنظیمات دستگاه خود تنظیم می‌کند، مقیاس‌بندی می‌شوند. آندروید زمانی که متن را ترسیم می کند، اندازه متن روی صفحه را تشخیص می دهد. همیشه از sp برای اندازه متن استفاده کنید.
<TextView
       android:id="@+id/title"
...

android:textSize="24sp"
  1. با تنظیم مقدار aRGB #FF555555 ، textColor نمای متن title را روی خاکستری مات قرار دهید.
<TextView
       android:id="@+id/title"
...

android:textColor="#FF555555"
  1. برای باز کردن تب Preview در Android Studio، View > Tool Windows > Preview را انتخاب کنید یا روی دکمه Preview عمودی در لبه سمت راست Layout Editor کلیک کنید. در پیش نمایش، همانطور که در زیر نشان داده شده است، بررسی کنید که عنوان خاکستری و بزرگتر از قبل باشد.

  1. رنگ زیرنویس را با هدر، با فونت کوچکتر، 18sp ، استایل کنید. (الفای پیش‌فرض FF است، مات است. اگر مقدار آلفا را تغییر نمی‌دهید، می‌توانید آن را حذف کنید.)
<TextView
       android:id="@+id/subtitle"
...
android:textSize="18sp"
android:textColor="#555555"

  1. در این نرم افزار کد، هدف این است که برنامه را کمی عجیب و غریب در عین حال که حرفه ای به نظر می رسد، استایل دهید، اما می توانید به هر شکلی که می خواهید به آن استایل دهید. ویژگی های زیر را برای نمای متن subtitle امتحان کنید. از تب Preview استفاده کنید تا ببینید ظاهر برنامه خود چگونه تغییر می کند. سپس این ویژگی ها را حذف کنید.
<TextView
       android:id="@+id/subtitle"
       ...
       android:textAllCaps="true"
       android:textStyle="bold"
       android:background="#ff9999"
  1. فراموش نکنید که قبل از ادامه، ویژگی‌های textAllCaps ، textStyle و background را از نمای subtitle لغو کنید.
  2. برنامه خود را اجرا کنید و از قبل بهتر به نظر برسد.

هنگام استفاده از فونت ها با برنامه خود، می توانید فایل های فونت لازم را به عنوان بخشی از APK خود ارسال کنید. اگرچه این راه حل ساده است، اما معمولاً توصیه نمی شود، زیرا باعث می شود برنامه شما دانلود و نصب بیشتری طول بکشد.

اندروید به برنامه‌ها اجازه می‌دهد فونت‌ها را در زمان اجرا با استفاده از API فونت‌های دانلودی دانلود کنند. اگر برنامه شما از همان فونت برنامه دیگری در دستگاه استفاده می کند، Android فقط یک بار فونت را دانلود می کند و فضای ذخیره سازی دستگاه را ذخیره می کند.

در این کار، از فونت های قابل دانلود برای تنظیم فونت هر نما در برنامه خود که از تم استفاده می کند استفاده می کنید.

مرحله 1: یک فونت قابل دانلود اعمال کنید

  1. home_fragment.xml را در تب Design باز کنید.
  2. در قسمت Component Tree ، نمای متن title را انتخاب کنید.
  3. در قسمت Attributes ، ویژگی fontFamily را پیدا کنید. می توانید آن را در بخش همه ویژگی ها پیدا کنید یا فقط می توانید آن را جستجو کنید.
  4. روی فلش کشویی کلیک کنید.
  5. به More Fonts بروید و آن را انتخاب کنید. یک پنجره منابع باز می شود.

  1. در پنجره منابع ، lobster یا فقط lo را جستجو کنید.
  2. در نتایج، Lobster Two را انتخاب کنید.
  3. در سمت راست، زیر نام فونت، دکمه رادیویی ایجاد فونت قابل دانلود را انتخاب کنید. روی OK کلیک کنید.
  4. فایل Android Manifest را باز کنید.
  5. در نزدیکی پایین مانیفست، تگ <meta-data> جدید را با name و ویژگی‌های resource روی "preloaded_fonts" پیدا کنید. این برچسب به خدمات Google Play می گوید که این برنامه می خواهد از فونت های دانلود شده استفاده کند. وقتی برنامه شما اجرا می‌شود و فونت Lobster Two را درخواست می‌کند، اگر فونت از قبل در دستگاه موجود نباشد، ارائه‌دهنده فونت فونت را از اینترنت دانلود می‌کند.
<meta-data android:name="preloaded_fonts" android:resource="@array/preloaded_fonts"/>
  1. در پوشه res/values ، فایل preloaded_fonts.xml را پیدا کنید، که آرایه‌ای را تعریف می‌کند که تمام فونت‌های قابل دانلود این برنامه را فهرست می‌کند.
  2. به همین ترتیب، فایل res/fonts/lobster_two.xml اطلاعاتی در مورد فونت دارد.
  3. home_fragment.xml را باز کنید و در کد و پیش‌نمایش متوجه شوید که فونت Lobster Two روی title TextView اعمال می‌شود و بنابراین روی عنوان اعمال می‌شود.

  1. res/values/styles.xml را باز کنید و تم پیش فرض AppTheme را که برای پروژه ایجاد شده است بررسی کنید. در حال حاضر مانند شکل زیر به نظر می رسد. برای اعمال فونت جدید Lobster Two روی تمام متن، باید این تم را به روز کنید.
  2. در تگ <style> به ویژگی parent توجه کنید. هر تگ سبک می تواند یک والد را مشخص کند و تمام ویژگی های والد را به ارث ببرد. کد، Theme تعریف شده توسط کتابخانه های اندروید را مشخص می کند. موضوع MaterialComponents که همه چیز را از نحوه عملکرد دکمه ها تا نحوه ترسیم نوار ابزار را مشخص می کند. این تم دارای پیش‌فرض‌های معقولی است، بنابراین می‌توانید فقط قسمت‌هایی را که می‌خواهید سفارشی کنید. همانطور که در تصویر بالا می بینید، برنامه از نسخه Light این تم بدون نوار اکشن ( NoActionBar ) استفاده می کند.
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
   <!-- Customize your theme here. -->
   <item name="colorPrimary">@color/colorPrimary</item>
   <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
   <item name="colorAccent">@color/colorAccent</item>
</style>
  1. در سبک AppTheme ، خانواده فونت را روی lobster_two تنظیم کنید. باید هم android:fontFamily و هم fontFamily را تنظیم کنید، زیرا تم والد از هر دو استفاده می کند. برای پیش نمایش تغییرات خود می توانید home_fragment.xml در تب Design بررسی کنید.
<style name="AppTheme"  
...    
        <item name="android:fontFamily">@font/lobster_two</item>
        <item name="fontFamily">@font/lobster_two</item>
  1. دوباره برنامه را اجرا کنید. فونت جدید روی تمام متن اعمال می شود! کشوی ناوبری را باز کنید و به صفحه های دیگر بروید، می بینید که فونت در آنجا نیز اعمال می شود.

مرحله 2: تم را روی عنوان اعمال کنید

  1. در home_fragment.xml ، نمای متن title را پیدا کنید، که دارای ویژگی فونت lobster_two است. ویژگی fontFamily را حذف کنید و برنامه را اجرا کنید. از آنجایی که تم یک خانواده فونت را تنظیم می کند، هیچ تغییری وجود ندارد.
  2. یک ویژگی fontFamily متفاوت را در نمای متن title برگردانید:
    app:fontFamily="serif-monospace "
    مطمئن شوید که در فضای app است!
<TextView
       android:id="@+id/title"
       ...
       app:fontFamily="serif-monospace"
  1. برنامه را اجرا کنید، و می بینید که ویژگی محلی به view، موضوع را لغو می کند.
  1. ویژگی fontFamily را از نمای متن title حذف کنید.

تم ها برای اعمال تم های کلی در برنامه شما، مانند فونت پیش فرض و رنگ های اصلی، عالی هستند. ویژگی‌ها برای استایل دادن به یک نمای خاص و افزودن اطلاعات طرح‌بندی مانند حاشیه‌ها، بالشتک‌ها و محدودیت‌ها، که معمولاً مختص هر صفحه هستند، عالی هستند.

در وسط هرم سبک سلسله مراتبی سبک ها قرار دارند. سبک‌ها «گروه‌هایی» از ویژگی‌های قابل استفاده مجدد هستند که می‌توانید برای نماهای انتخابی خود اعمال کنید. در این کار از یک سبک برای عنوان و زیرنویس استفاده می کنید.

مرحله 1: ایجاد یک سبک

  1. res/values/styles.xml باز کنید.
  2. در داخل تگ <resources> با استفاده از تگ <style> یک سبک جدید تعریف کنید، همانطور که در زیر نشان داده شده است.
<style name="TextAppearance.Title" parent="TextAppearance.MaterialComponents.Headline6">
</style>

مهم است که در هنگام نامگذاری نام سبک ها به عنوان معنایی فکر کنید. یک نام سبک را بر اساس آنچه که سبک مورد استفاده قرار می گیرد، انتخاب کنید، نه بر اساس ویژگی هایی که سبک بر آن تأثیر می گذارد. به عنوان مثال، این سبک Title کنید، نه چیزی مانند LargeFontInGrey . این سبک توسط هر عنوانی در هر جایی از برنامه شما استفاده می شود. به عنوان یک قرارداد، سبک های TextAppearance TextAppearance. Name ، بنابراین در این مورد، نام TextAppearance.Title است.

این سبک یک والد دارد، همانطور که یک موضوع می تواند والد داشته باشد. اما این بار، به جای گسترش یک موضوع، سبک یک سبک را گسترش می دهد، TextAppearance.MaterialComponents.Headline6 . این سبک یک سبک متن پیش‌فرض برای موضوع MaterialComponents است، بنابراین با گسترش آن، به جای شروع از ابتدا، سبک پیش‌فرض را تغییر می‌دهید.

  1. در داخل سبک جدید، دو مورد را تعریف کنید. در یک مورد، textSize روی 24sp تنظیم کنید. در مورد دیگر، textColor روی همان خاکستری تیره که قبلا استفاده شده بود، تنظیم کنید.
 <item name="android:textSize">24sp</item>
 <item name="android:textColor">#555555</item>
  1. سبک دیگری برای زیرنویس تعریف کنید. نام آن را TextAppearance.Subtitle بگذارید.
  2. از آنجا که تنها تفاوت با TextAppearance.Title در اندازه متن خواهد بود، این سبک را فرزند TextAppearance.Title کنید.
  3. در داخل سبک Subtitle ، اندازه متن را روی 18sp تنظیم کنید. این استایل تکمیل شده است:
<style name="TextAppearance.Subtitle" parent="TextAppearance.Title" >
   <item name="android:textSize">18sp</item>
</style>

مرحله 2: استایلی را که ایجاد کرده اید اعمال کنید

  1. در home_fragment.xml ، TextAppearance اضافه کنید. سبک Title به نمای متن title . صفات textSize و textColor را حذف کنید.

    طرح‌های زمینه هر یک از استایل‌های TextAppearance را که تنظیم کرده‌اید لغو می‌کنند. (نمودار هرمی در ابتدای صفحه کد، ترتیب اعمال استایل را نشان می دهد.) از ویژگی textAppearance برای اعمال استایل به عنوان TextAppearance استفاده کنید تا فونت مجموعه در Theme بر آنچه در اینجا تنظیم کرده اید لغو شود.
<TextView
       android:id="@+id/title"
       android:textAppearance="@style/TextAppearance.Title"
  1. همچنین سبک TextAppearance.Subtitle را به نمای متن subtitle اضافه کنید و ویژگی های textSize و textColor را حذف کنید. شما باید این سبک را به‌عنوان textAppearance نیز اعمال کنید، به‌طوری‌که فونت مجموعه‌شده در موضوع، بر آنچه در اینجا تنظیم کرده‌اید لغو شود.
<TextView
       android:id="@+id/subtitle"
       android:textAppearance="@style/TextAppearance.Subtitle"
  1. برنامه را اجرا کنید و متن شما اکنون به طور مداوم استایل داده می شود.

پروژه Android Studio: GDGFinderStyles .

  • از تم ها، سبک ها و ویژگی ها در نماها برای تغییر ظاهر نماها استفاده کنید.
  • تم ها روی استایل کل برنامه شما تأثیر می گذارند و مقادیر زیادی از پیش تعیین شده برای رنگ ها، فونت ها و اندازه فونت ها دارند.
  • یک ویژگی برای نمایه ای که ویژگی در آن تنظیم شده است اعمال می شود. اگر استایلی دارید که فقط برای یک نما اعمال می‌شود، از ویژگی‌ها استفاده کنید، مانند padding، حاشیه‌ها و محدودیت‌ها.
  • سبک ها گروهی از ویژگی ها هستند که می توانند توسط چندین نما استفاده شوند. برای مثال، می‌توانید برای تمام سرصفحه‌ها، دکمه‌ها یا نمایش‌های متنی خود یک سبک داشته باشید.
  • تم ها و سبک ها از تم یا سبک اصلی خود به ارث می برند. شما می توانید یک سلسله مراتب از سبک ها ایجاد کنید.
  • مقادیر مشخصه (که در نماها تنظیم می شوند) سبک ها را نادیده می گیرند. سبک ها سبک پیش فرض را لغو می کنند. سبک ها مضامین را نادیده می گیرند. تم‌ها بر هر نوع استایلی که با ویژگی textAppearance تنظیم شده است، لغو می‌شود.

  • با استفاده از تگ های <style> و <item> استایل ها را در فایل منبع styles.xml تعریف کنید.
<style name="TextAppearance.Subtitle" parent="TextAppearance.Title" >
   <item name="android:textSize">18sp</item>
</style>

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

  1. نمای را در تب Design انتخاب کنید و از منوی کشویی ویژگی fontFamily گزینه More fonts را انتخاب کنید.
  2. در گفتگوی منابع ، یک فونت را پیدا کنید و دکمه رادیویی ایجاد فونت قابل دانلود را انتخاب کنید.
  3. بررسی کنید که مانیفست اندروید دارای یک تگ متا دیتا برای فونت های از پیش بارگذاری شده باشد.

هنگامی که برنامه برای اولین بار فونت را درخواست می کند، و فونت از قبل در دسترس نیست، ارائه دهنده فونت آن را از اینترنت دانلود می کند.

مستندات توسعه دهنده اندروید:

سایر منابع:

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

  • در صورت نیاز تکالیف را تعیین کنید.
  • نحوه ارسال تکالیف را با دانش آموزان در میان بگذارید.
  • تکالیف را نمره دهید.

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

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

به این سوالات پاسخ دهید

سوال 1

از کدام تگ برای تعریف تم استفاده می شود؟

<style>

<theme>

<meta-tag>

<styling>

سوال 2

کدام یک از موارد زیر به خوبی از سبک ها استفاده نمی کند؟

▢ محدودیت های یک view را مشخص کنید.

▢ رنگ پس زمینه سرفصل ها را مشخص کنید.

▢ اندازه فونت را در بین نماها یکسان کنید.

▢ رنگ متن را برای گروهی از نماها مشخص کنید.

سوال 3

تفاوت بین تم ها و سبک ها چیست؟

▢ تم ها برای کل برنامه اعمال می شوند، در حالی که می توانید سبک ها را برای نماهای خاص اعمال کنید.

▢ تم ها نمی توانند از تم های دیگر ارث ببرند، اما سبک ها می توانند از سبک های دیگر ارث ببرند.

▢ سبک ها نمی توانند از سبک های دیگر ارث ببرند، اما تم ها می توانند از موضوعات دیگر ارث ببرند.

▢ تم ها توسط سیستم اندروید ارائه می شوند، در حالی که سبک ها توسط توسعه دهنده تعریف می شوند.

سوال 4

اگر یک TextView در برنامه شما دارای یک Theme است که اندازه فونت را روی 12sp تنظیم می کند، یک سبک تعریف شده که آن را روی 14sp تنظیم می کند، و یک ویژگی fontSize 16sp دارد، اندازه فونت نمایش داده شده روی صفحه چقدر است؟

12sp

14sp

16sp

18sp

درس بعدی را شروع کنید: 10.2: طراحی متریال، ابعاد و رنگ ها

برای پیوند به سایر کدهای این دوره، به صفحه فرود کد لبه‌های کد پایه Android Kotlin Fundamentals مراجعه کنید.