میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

theme و style در اندروید

اندروید به شما این امکان را می دهد تا ظاهر کامپوننت های اندرویدی خود (همچون رنگ و فونت) را در فایل های XML تعریف نمایید. این امکان به شما اجازه می دهد تا تمامی attribute هایی که ظاهر اپلیکیشن را تعریف و سبک دهی می کنند به صورت یکجا و در یک مکان واحد مقداردهی نمایید.

آن دسته از المان هایی که در فایل منابع و محتوا ( resource ) برای سبک دهی به (تنظیم و طراحی ظاهر) view ها مورد استفاده قرار می گیرند، style نامیده می شوند و آن دسته از المان هایی که ویژه ی سبک دهی و تنظیم ظاهر یک activity یا اپلیکیشن تعبیه شده باشند، theme نام دارند.

به منظور تعریف style یا ،theme لازم است یک فایل XML در پوشه ی اصلی /res/values پروژه ی خود ذخیره نمایید. گره اول و اصلی ( root node ) فایل XML مورد نظر می بایست تگ  <resources> می باشد. به منظور تعریف style و theme می بایست یک المان با تگ style و یک خصیصه ی  (name (attribute تعریف نمایید. این المان می تواند یک یا چندین آیتم در دل خود داشته باشد و مقادیر attribute های نام گذاری شده را تعیین نماید.

کد زیر نمونه ای از تعریف یک style را نمایش می دهد.

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="text">
<item name="android:padding">4dip</item>
<item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
<item name="android:textColor">#000000</item>
</style>
<style name="layout">
<item name="android:background">#C0C0C0</item>
</style>
</resources>

به منظور تعریف style برای المان های موجود در فایل layout، می بایست به این صورت اقدام نمایید

.style=”@style/text

Style ها و theme ها می توانند به واسطه ی attribute پدر (میزبان) تگ ،style ویژگی های والد خود را به ارث برده و از inheritance پشتیبانی نمایند. در واقع بدین وسیله style مورد نظر تمامی تنظیمات را از style پدر خود به ارث برده و می تواند attribute های انتخابی را بازنویسی ( overwrite ) کند

 


دسترسی و اشاره به attribute ها در theme جاری

اندروید تمامی attribute های استاندارد که امکان style دهی آن ها وجود دارد را در فایلی به نام R.attr فهرست کرده است. این فایل تحت آدرس

http://developer.android.com/reference/android/R.attr.html

قابل دسترسی می باشد

می توانید با استفاده از دستور نگارشی (android:attr (notation? به attribute های theme جاری اندروید دسترسی داشته باشید. به عبارت دیگر شما می توانید با استفاده از این دستور به خصیصه style ( attribute ) ی در theme جاری اشاره کنید  

به عنوان مثال کد android:attr/listPreferredItemHeight به اندروید دستور می دهد تا مقدار اختصاص یافته به خصیصه ی listPreferredItemHeight را در تم جاری بکار ببرد.

فایل layout زیر به المان های دکمه در UI استایل دکمه های ویرایش ۴٫۰ اندروید را اعمال می کند.

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
style="?android:attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/Button01"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Show" />
<Button
android:id="@+id/Button02"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Change" />
</LinearLayout>
<EditText
android:id="@+id/myView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
theme  و style
theme و style

 


Theme چیست؟

Theme عبارت است یک style که به جای یک view به کل یک activity ( یک صفحه از اپلیکیشن ) یا اپلیکیشن اعمال می شود. روش تعریف آن با تعریف style تفاوتی ندارد.
مثال بعدی نحوه ی تعریف یک theme اختصاصی را با ارث بری از theme درون ساخته ی محیط اندروید ( platform
) شرح می دهد.

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme.Light">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/translucent_red</item>
<item name="android:listViewStyle">@style/MyListView</item>
</style>
<style name="MyListView" parent="@android:style/Widget.ListView">
<item name="android:listSelector">@drawable/ic_menu_home</item>
</style>
</resources>

 

 


امیدواریم آموزش theme و style در اندروید نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

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

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟