SeekBar در اندروید

منتشرشده توسط حامد قنبری در تاریخ

به کاربر اجازه می دهد یک مقدار از محدوده داده شده را  از مقادیرحداقلی تا حداکثری با استفاده از کشیدن انگشت خود در روی ویوی مذکور مشخص کند.بطور کلی SeekBar یک کلاس از زیرمجموعه کلاس ProgressBar است که برای نشان دادن پیشرفت عملیات کاربر یا Backend استفاده می شود.

SeekBar را می توان با استفاده از عنصر SeekBar به فایل Xml  خود در Layout اضافه کرد. ویژگی های مهمی که باید  هنگام استفاده از این ویو تنظیم شوند عبارتند از max، progress و layout_width . با استفاده از ویژگی max  در SeekBar، می توانید حداکثر مقدار مدنظر خودتان را تنظیم کنید تا کاربر بتواند یک مقدار مشخصی را از محدوده 0 تا حداکثر مقدار تعیین شده با کشیدن انگشت شست به سمت چپ یا راست بر روی آن انتخاب کند.عدد تعیین شده باید یک مقدار صحیح  مانند 10، 20، 100، 200 و غیره باشد. البته ما می توانیم مقدار حداکثر را هم در فایل XML و همچنین در کلاس جاوا تنظیم کنیم. به طور پیش فرض، SeekBar مقدار max  را  100 در نظر می گیرد.از این رو شما می توانید مقدار پیش فرض انتخاب شده را با مقدار  مدنظر خود برای انتخاب کاربر تغییر دهید.progressیک ویژگی دیگر SeekBar است که برای تعریفپیشرفت مقدار، بین 0 و max استفاده می شود. این عدد نیز باید دارای یک مقدار صحیح باشد.

اگر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را  ایجاد کنید

اکلیپس :File ⇒ New Android ⇒ Application Project

اندروید استودیو :File ⇒ New  ⇒ New Project

اما اگر هنوز برنامه خود را باز نکرده اید یکی از برنامه های فوق را باز نموده و بعد از تعیین مشخصات(نامگذاری) ، تعیین حداقل sdk  و نوع اکتیویتی (blank  یا Empty) ، نام اکتیویتی ابتدایی و اصلی خود  را همان MainActivity قرار دهید.

در مسیر res ⇒layout لایه متناظر اکتیوتی اصلی یعنی activity_main را پیدا نمود و کدهای مندرج و پیش فرض آن را پاک کرده و کدهای xml  زیر را به آن اضافه کنید:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <SeekBar
        android:id="@+id/seekbar1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:max="300"
        android:progress="70"
        />

</LinearLayout>

 

در این مرحله MainActivity را باز می کنیم و  بعد از تعریف ویو مورد نظر با استفاده از شناسه  مربوطه ، رویداد مربوط به listener را تغییر می دهیم تا تغییرات در میزان پیشرفت SeekBar ایجاد شود. در واقع با استفاده از این شنونده رویداد می توانیم مقدار فعلی Seekbar هنگامی که کاربر لمس SeekBar را متوقف کند، دریافت کنیم و  سپس مقدار پیشرفت با استفاده از Toastنمایش داده می شود.

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {


    SeekBar mSeekBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
     mSeekBar=(SeekBar)findViewById(R.id.seekbar);
      
       mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            int progressChangedValue = 0;

            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                progressChangedValue = progress;
            }

            public void onStartTrackingTouch(SeekBar seekBar) {
               
            }

            public void onStopTrackingTouch(SeekBar seekBar) {
                Toast.makeText(MainActivity.this, "Seek bar progress is :" + progressChangedValue,
                        Toast.LENGTH_SHORT).show();
            }
        });

    }


}

حال می توانید پروژه خود را اجرا کرده و نتیجه کار خود را ببینید.

موفق و پیروز باشید.

 


0 دیدگاه

دیدگاهتان را بنویسید

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

-- بارگیری کد امنیتی --