آموزشهای پراکنده از دنیای برنامه نویسی اندروید
این روزها یکی از برنامه های پرکاربرد در ایران تلگرام می باشد. با گشت و گذار در داخل این برنامه مشاهده می کنیم در اکتیویتی های مختلف رنگ های متفاوتی به تولبار اعمال شده است.امروز در این مورد جستجو انجام دادم و متوجه شدم فقط یک روش موجود می باشد که در ادامه به توضیح آن خواهیم پرداخت.
روش پیاده سازی اعمال تم
1- برنامه اندروید استودیو را اجرا کرده و پروژه ای جدید ایجاد می کنیم.
2- پس از ایجاد پروژه ابتدا در فایل gradle دستور زیر را وارد می کنیم و سینک(sync) می کنیم.
compile 'com.android.support:design:23.3.0'
3-سپس در فایل activity_main.xml تغییرات زیر را اعمال می کنیم.
ابتدا متن تکست ویو را اکتیویتی اول می کنیم و سپس یک دکمه FloatingActionButton اضافه می کنیم.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutDirection="rtl"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:textDirection="rtl"
tools:context="ir.technopedia.spotlight.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="اکتیویتی اول"
android:textSize="18sp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:src="@android:drawable/ic_dialog_email"
app:fabSize="normal" />
</RelativeLayout>
4- سپس با راست کلیک برروی فولدر app و انتخاب new->Activity->Empty Activity یک اکتیویتی دیگر با نام SecondActivity به پروژه اضافه می کنیم.
5- به فایل MainActivity.java رفته و یک اشاره گر به دکمه موجود در فایل xml ایجاد می کنیم و در رخداد کلیک آن SecondActivity را استارت می کنیم.
MainActivity.class
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getBaseContext(), SecondActivity.class));
}
});
}
}
6- سپس در فایل styles.xml برنامه یک استایل جدید با نام GreenColor ایجاد می کنیم.(همانند کدهای زیر)
<style name="GreenColor">
<item name="colorPrimary">@color/material_green_500</item>
<item name="colorPrimaryDark">@color/material_green_700</item>
</style>
7- حال به فایل SecondActivity.class رفته و تابع setTheme() را قبل از تابع setContentView فراخوانی می کنیم تا استایل جدید ما در اکتیویتی دوم اعمال شود.
SecondActivity.class
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.GreenColor);
setContentView(R.layout.activity_second);
}
}
8- برنامه را اجرا کنید و تغییرات را مشاهده کنید.