به نام خدا.در این جلسه می خواهیم با سیک بار (SeekBar) در برنامه نویسی اندروید اشنا بشیم،در مواقعی که داریم یک برنامه اندرویدی تولید میکنیم نیاز میشه که اندازه فونت و یا اندازه تصویر و صدای محیطی برنامه تغییر داده بشه در این مواقع نیاز برنامه نویس به سیک بار احساس میشه.در این اموزش ما با نحوه ایجاد و استفاده مناسب از SeekBar رو به شما یاد خواهیم داد.
برای شروع کار یک پروژه جدید به نام Seekbar ایجاد میکنیم و بروی لایه برنامه از دو ابزار استفاده خواهیم کرد.یکی از این ابزار ها Seekbar و دیگری نیز یک تکست ویو TextVIew خواهد بود.وظیفه که برای سیک بار تعریف می کنیم اینه که:وقتی نوار سیک بار رو حرکت میدیم اندازه فونت و یا اندازه تکست ویو تغییر پیدا کنه.(در زیر کدهای بخش activity_main.xml و یا لایه برنامه رو مشاهده می کنید)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <SeekBar android:id="@+id/seekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="43dp" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/seekBar1" android:layout_centerHorizontal="true" android:layout_marginTop="108dp" android:text="Learn Android UnitAzad.Ir" /> </RelativeLayout>
بعد از تکمیل کردن لایه برنامه میریم سراغ کد نویسی جاوا و فایل MainActivity.java.در این بخش ابتدا تکست ویو (TextView) و سیک بار(Seekbar) رو با دستور فینال معرفی می کنیم تا مقدارشون ثابت بشه.سپس به سیک بار یک رویداد SeekBarChangeListener اضافه میکنیم تا وقتی که سیک بار شروع به کار کرد اندازه تکست ویو رو تغییر بده.بعد از معرفی رویداد باید یک مقدار عددی به برنامه اضافه کنیم تا اندازه فونت رو از 0 تا 30 برای ما تغییر بده.در ادامه باید یک شرط به سیک بار اضافه کنیم،که به برنامه بگه (اگر مقدار int کوچکتر از30 بود کارهای خاصی رو برای ما انجام بده).این کار خواص میتونه هر دستوری باشه مثلا یک توست(Toast).در این جا ما داخل شرط گفتیم که فونت سایز رو 30 قرار بده و هنگامی که سیک بار درحال حرکت هست مقدار اون رو با فونت سایز هماهنگ کن.(در زیر کدهای کامل بخش MainActivity.java رو می بینید.)
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //معرفی تکست ویو همراه با فینال تا مقدارش ثابت بشه final TextView t1=(TextView) findViewById(R.id.textView1); //معرفی سک بار همراه با فینال تا مقدارش ثابت بشه final SeekBar sk=(SeekBar) findViewById(R.id.seekBar1); //معرفی یک رویداد چنج لیسنر برای سیک بار sk.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { //تعریف یک متغییر عددی int fontSize=0; @Override //معرفی رویداد توقف public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub //معرفی یک شرط برای رویداد توقف if(fontSize<30) { //مقدار دهی برای فونت سایز تا عدد 30 fontSize=30; //ست کردن سیک بار با مقدار int sk.setProgress(fontSize); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { // TODO Auto-generated method stub //برابر کردن مقدار سیک بار با فونت سایز fontSize=progress; //و در اخر ست کردن مقدار فونت سایز بروی تکست ویو t1.setTextSize(fontSize); } }); } }
حال پروژه تمام شده می توانید برنامه خود را اجرا کنید