نحوهی کار با سیک بار (Seek Bar)
فیلم آشنایی با نحوهی کار با سیکبار (Seek Bar)
متن به همراه عکس آشنایی با نحوهی کار با سیکبار (Seek Bar)
در این مقاله می خواهیم با نحوه کار با سیک بار و ویژگی های آن آشنا شویم.
سیک بار چیست؟
سیک بار یک ویژگی است که به امکان کم و زیاد کردن یا جابجا کردن یک مقداری را به صورت دستی میدهد. نمونه آن را میتوانیم در قسمت کم و زیاد کردن صدای گوشی مشاهده کنیم که در آن به کاربر اجازه داده میشود که صدا را کم و زیاد کند.
اضافه کردن سیک بار به قسمت گرافیکی پروژه:
بعد از ساخت یک پروژهی جدید از طریق مسیر زیر وارد قسمت گرافیکی میشویم:
app>res>layout>activity_main.xml
به صورت پیش فرض یک تکست ویو وجود دارد که آن را پاک میکنیم و در قسمت Widgets سیک بار را پیدا میکنیم. البته میتوانیم برای راحتی کار در قسمت بالا آن را جستجو کنیم. بعد از پیدا کردن، آن را میگیریم و به پروژهمان اضافه میکنیم. چون نوع لایهی ما از نوع کانسترینت لیوت است، حتما باید اتصال سیک بار با دیوارهی بالا، پایین، چپ و راست را مشخص کنیم.
در قسمت Constraint Widgets مقدار سیک بار را match_parent قرار میدهیم تا اندازهی آن تمام صفحه شود.
سپس از پروژه اجرا میگیریم.
مشاهده میکنیم که سیکبار اضافه شده و میتوانیم آن را کم و زیاد کنیم.
ویژگیهای مورد استفاده در سیک بار:
به منظور کار با سیک بار و همچنین استفاده از آن در قسمت Common Attributes میتوانیم ویژگیهایی را به دلخواه به سیک بار اضافه کنیم.
1_ مقدار max، یعنی حداکثر آن را مشخص کنیم، مثلا روی 50 قرار دهیم.
2_ در قسمت progress، مقدار پیش فرض را در هنگام اجرا مشخص کنیم، مثلا روی 20 قرار دهیم.
هنگامی که اجرا بگیریم، مشاهد میکنیم که مقدار پیش فرض روی 20 و مقدار max روی 50 قرار دارد.
3_ در قسمت thump، میتوانیم عکس موردنظرمان را به جای دایرهی صورتی رنگ (شکل زیر) قرار دهیم و از آن استفاده کنیم.
4_ در قسمت progress Drawable، میتوانیم بکگراند و رنگ دلخواهمان را به پروژهی خود اضافه و از آن استفاده کنیم.
5_ در قسمت progress int، میتوانیم رنگ قسمتی را که کم و زیاد میکنیم، تغییر دهیم. مثلا رنگ صورتی را به رنگ آبی تغییر دهیم.
اضافه کردن کدنویسی سیک بار در جاوا:
در ابتدا در قسمت id در همان بخش گرافیکی، برای سیک بار یک id انتخاب میکنیم. به صورت پیش فرض seekBar نوشته شده و میتوانیم از همان استفاده کنیم.
سپس از طریق مسیر زیر وارد جاوا میشویم و کدنویسی زیر را انجام میدهیم:
app>java>com.example.firstapp>MainActivity
1 2 |
SeekBar seekBar = findViewById(R.id.seekBar); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { |
- سیک بار را تعریف و اسم دلخواهمان انتخاب میکنیم.
- به وسیلهی findViewById، اتصال سیک بار به قسمت گرافیکی را برقرار میکنیم.
- در خط دوم، برای استفاده از سیک بار، کد را اضافه میکنیم که بعد از اضافه کردن آن، 3 متد به ما میدهد که میتوانیم در مواقع لازم از آنها استفاده کنیم.
کدنویسی متدها:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); |
متدها چه هستند؟
- onStartTrackingTouch در زمانی که کاربر روی مقداری کلیک میکند، همان مقدار را میگیرد.
1 2 3 4 |
@Override public void onStartTrackingTouch(SeekBar seekBar) { } |
- onStopTrackingTouch در زمانی که کاربر مقدار را تغییر داده و رها کرده است، همان مقدار رها شده را نشان میدهد.
1 2 3 4 5 |
@Override public void onStopTrackingTouch(SeekBar seekBar) { } }); |
- onProgressChanged در زمانی که کاربر در حال جابجایی و تغییر دادن است، مقدار تغییر داده شده را لحظه به لحظه نشان میدهد.
1 2 |
@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { |
برای اینکه با تفاوت بین متدها آشنا شویم، یک توست به پروژه اضافه میکنیم و کدنویسی زیر را انجام میدهیم.
1_ ابتدا به متد onStartTrackingTouch یک توست اضافه میکنیم.
1 2 3 4 |
@Override public void onStartTrackingTouch(SeekBar seekBar) { Toast.makeText(MainActivity.this, "لحظه کلیک شدن را نشان بده", Toast.LENGTH_SHORT).show(); } |
سپس از پروژه اجرا میگیریم.
مشاهده میکنیم که با هر بار کلیک کردن روی سیک بار، در همان لحظه عبارت “لحظهی کلیک شدن را نشان بده” (در واقع همان توست اضافه شده) را نشان میدهد و وقتی جابجا کنیم، دیگر نشان نمیدهد تا زمانی که دوباره روی آن کلیک کنیم.
2_ حال توست مربوط به متد قبل را پاک و به متد onStopTrackingTouch اضافه میکنیم.
1 2 3 4 5 6 |
@Override public void onStopTrackingTouch(SeekBar seekBar) { Toast.makeText(MainActivity.this, "لحظه کلیک شدن را نشان بده", Toast.LENGTH_SHORT).show(); } }); |
بار دیگر اجرا میگیریم.
مشاهده میکنیم که در لحظهی کلیک شدن و جابجایی مقدار، توست را نشان نمیدهد و زمانی که کاربر مقدار را تغییر داد و رها کرد به ما نشان میدهد.
3_ بار دیگر توست را از متد قبل پاک کرده و به متد onProgressChanged اضافه میکنیم.
1 2 3 4 5 |
@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { Toast.makeText(MainActivity.this, progress, Toast.LENGTH_SHORT).show(); } |
در کد بالا، عبارت progress را اضافه میکنیم که در واقع عدد مقدار را در لحظه نشان میدهد.
از پروژه اجرا میگیریم.
مشاهده میکنیم که وقتی در حال تغییر مقدار هستیم، مقدار را به صورت عدد و لحظه به لحظه به ما نشان میدهد.
از این متد میتوانیم در کم و زیاد کردن صدا، موزیک پلیر و ویدئو پلیر در زمانی که میخواهیم به کاربر لحظهی آهنگ و ویدئو هنگام پخش شدن نشان دهیم، استفاده کنیم.
مواردی را که در قسمت گرافیکی اضافه کردیم، مثل مقدار max و progress، میتوانیم در قسمت جاوا با استفاده از کدنویسی زیر نیز اضافه کنیم.
1 2 |
s.setMax(100); s.setProgress(50); |
کدهای کامل این بخش:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package com.kazemieh.www.seekbar; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.SeekBar; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SeekBar seekBar = findViewById(R.id.seekBar); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); seekBar.setMax(100); seekBar.setProgress(50); } } |
دانلود فایل
دانلود فایل
مطالب زیر را حتما بخوانید
-
نحوهی کار با ویدئوپلیر (Video Player) از طریق پوشهی raw
7.49k بازدید
-
آلرت دیالوگ (AlertDialog) چیست و نحوهی کار با آن چگونه است؟
7.06k بازدید
-
اسنکبار (Snackbar) در اندروید
4.59k بازدید
-
ّFloating action Button (فلوتینگ اکشن باتن) در اندروید
4.42k بازدید
-
نحوهی کار با فریم لیوت (FrameLayout)
4.9k بازدید
-
یک روش برای تمرکز در برنامهنویسی
3.3k بازدید
دیدگاهتان را بنویسید