سلام دوستان عزیز ، صبح شما بخیر باشه . در این بخش به استایل و تم در اندروید میپردازیم. اگر شما از قبل اطلاعاتی در مورد Cascading Style Sheet (CSS) در طراحی وب داشته باشید، Android Style نیز بسیار شبیه به آن عمل می کند. تعدادی ویژگی مربوط به هر ویجت اندرویدی وجود دارد که شما می توانید برای تغییر ظاهر اپلیکیشن خود آنها را تنظیم کنید. یک سبک (style ) می تواند مواردی مانند ارتفاع، نحوه قرار گیری صفحات، رنگ فونت، اندازه فونت، رنگ پس زمینه و بسیاری از موارد دیگر را مشخص کند.

شما می توانید این ویژگی ها را در فایل Layout، به صورت زیر تعیین کنید .

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

یک style در یک منبع XML تعریف میشود که جدا از فایل xml ایست که صفحه بندی را مشخص می کند. این فایل XML در دایرکتوری res/values/ از پروژه شما قرار دارد و دارای تگ به عنوان گره ریشه است که وجود آن برای فایل style الزامی است. نام این فایل XML اختیاری است ولی باید دارای پسوند .xml باشد.

شما می توانید با استفاده از تگ چندین style را تعریف کنید، ولی هر style دارای نامی است که به صورت منحصر به فرد آن را مشخص می کند. ویژگی های style اندرویدی همان طور که در ادامه نشان داده شده است، با استفاده از تگ تنظیم می شود.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲

fill_parent
wrap_content
characters
monospace
۱۲pt
#۰۰FF00 / >

مقدار تگ ‎ می تواند یک رشته کلیدی، یک رنگ، یک ارجاع به نوعی منبع دیگر و یا مقدار دیگری بسته به ویژگی Style باشد.
استفاده از سبک ها

بعد از تعریف Style، شما می توانید مانند بخش زیر با استفاده از ویژگی style، آن را در فایل صفحه بندی XML خود به کار ببرید.
?
۱
۲
۳
۴
۵

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

http://www.tahlildadeh.com/

ارث بری سبک (Style Inheritance )

اندروید از ارث بری سبک، به طریقی بسیار مشابه با CSS در طراحی وب پشتیبانی می کند. شما می توانید از این قابلیت برای ارث بری ویژگی ها از یک سبک موجود استفاده کنید و پس از آن فقط ویژگی هایی را تعریف کنید که شما می خواهید آنها را تغییر داده یا اضافه کنید.

ایجاد یک سبک جدید LargeFont که از سبک CustomFontStyle تعریف شده در بالا ارث می برد، کار ساده ای است. این سبک جدید فقط اندازه فونت را بزرگ می کند. شما می توانید سایر سبک ها را نیز مانند این مثال بنویسید .
?
۱
۲
۳
۴
۵
۶
۷

۲۰ps

شما می توانید، این سبک جدید را به صورت @style/CustomFontStyle.LargeFont در فایل XML صفحه بندی خود ارجاع دهید. شما می توانید با ایجاد زنجیره ای از نام ها به وسیله­ ی علامت نقطه (.)، هر چندبار که دوست داشته باشید، از این سبک ارث ببرید. برای مثال، شما می توانید برای اینکه رنگ فونت در FontStyle.LargeFont قرمز باشد، آن را به این صورت توسعه بدهید .
?
۱
۲
۳
۴
۵
۶
۷

#FF0000

این روش ارث بری از طریق اتصال زنجیر وار نام ها به هم، فقط برای سبک های مربوط به منابعی که خودتان ایجاد کرده اید، کار می کند. شما نمی توانید با این روش از سبک های موجود در خود اندروید ارث بری کنید. برای ارجاع به یک سبک موجود در اندروید مانند TextAppearance، شما باید همان طور که در کد زیر نشان داده شده است از ویژگی parent استفاده کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲

fill_parent
wrap_content
characters
monospace
۱۲pt
#۰۰FF00 / >


قالب های اندروید (Android Themes )

امیدوارم که مفهوم سبک (Style) را به خوبی متوجه شده باشید. اکنون نوبت آن است که بفهمیم قالب چیست. یک قالب چیزی جز این نیست که یک سبک اندرویدی به جای یک view انفرادی، در کل یک فعالیت(Activity ) یا اپلیکیشن اعمال شود.

بنابراین، زمانیکه یک سبک به عنوان یک قالب استفاد شود، تمام View های موجود در Activity یا اپلیکیشن، از ویژگی هایی که سبک مورد نظر پشتیبانی می کند، استفاده می کنند. برای مثال، شما می توانید از سبک CustomFontStyle به عنوان یک قالب برای یک فعالیت استفاده کنید. در این صورت فونت تمام متون موجود در این فعالیت سبز می شود.

برای تنظیم یک قالب برای تمام فعالیت های اپلیکیشن تان، فایل AndroidManifest.xml را باز کنید و تگ را برای وارد کردن ویژگی android:theme با نام سبک، ویرایش کنید.

مثال:
?
۱
۲

ولی اگر شما بخواهید که یک قالب، فقط بر روی یکی از فعالیت های اپلیکیشن شما اعمال شود، ویژگی android:theme را فقط به تگ اضافه کنید.

مثال:
?
۱
۲

تعدادی قالب پیش فرض وجود دارند که به وسیله­ ی اندروید تعریف شده اند و شما می توانید مستقیما از آنها استفاده کنید و یا با استفاده از ویژگی parent، به صورت زیر از آنها ارث بری کنید.

مثال:
?
۱
۲
۳
۴
۵

parent=”android:theme.light”

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

http://www.tahlildadeh.com/

قالب ها و سبک های پیش فرض

پلت فرم اندروید مجموعه بزرگی از قالب ها و سبک ها را فراهم کرده است که شما می توانید در اپلیکیشن خود از آنها استفاده کنید. شما می توانید ارجاعی از تمام سبک های موجود را در کلاس R.style ببینید. برای استفاده از سبک های لیست شده در اینجا، همه­ی آندرلاین های (_) موجود در نام سبک را با یک نقطه جایگزین کنید. برای مثال شما می توانید از قالب Theme_NoTitleBar به صورت @android:style/Theme.NoTitleBar استفاده کنید. شما می توانید سورس کدهای زیر را در مورد سبک ها و قالب های اندروید ببینید.

Android Styles (styles.xml)
Android Themes (themes.xml)