آموزش SeekBar داینامیک در اندروید
سلام دوستان و توسعه دهندگان گرامی در این سری از آموزش برنامه نویسی اندروید به آموزش SeekBar داینامیک در اندروید می پردازیم منظور از SeekBar دانامیک ساخت یک Seekbar پویا با استفاده از کد و بدون استفاده از شئی که در Layout قرار میدهیم در ادامه با ما همراه باشید تا نحوه پیاده سازی SeekBar داینامیک را در اندروید یاد گیرید.
قبلا آموزش های مختلفی از Seekbar مانند Seekbar ساده و Seekbar متریال دیزاین را برای شما قرار دادیم در این آموزش اندروید نوع داینامیک (Dynamic) آن را بررسی می کنیم.
ابتدای کار وارد activity_main.xml d یا layout اصلی خود شده و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/rootContainer" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> </LinearLayout> |
در بالا ما فقط یک LinearLayout قرار دادیم که بعدا در ادامه Seekbar ایجاد شده را با استفاده از کد به آن Attach یا متصل می کنیم.
در MainActivity.java کدهای زیر را قرار دهید (در ادامه کدها توضیح داده خواهند شد)
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 36 37 38 | package ir.progrmchi.dynamicseekbar; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.ViewGroup; import android.widget.LinearLayout; 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 = new SeekBar(this); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(30, 30, 30, 30); seekBar.setLayoutParams(layoutParams); LinearLayout linearLayout = findViewById(R.id.rootContainer); // Add SeekBar to LinearLayout if (linearLayout != null) { linearLayout.addView(seekBar); } seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // changed. } @Override public void onStartTrackingTouch(SeekBar seekBar) { // started. } @Override public void onStopTrackingTouch(SeekBar seekBar) { //stopped. Toast.makeText(MainActivity.this, "Progress is " + seekBar.getProgress() + "%", Toast.LENGTH_SHORT).show(); } }); } } |
در بالا ابتدای کار یک شئی از Seekbar ساختیم و سپس Context اکتیویتی را به آن پاس دادیم بعد از اینکار با استفاده از LayoutParams اندازه آن شئی را تنظیم کردیم برای اینکه از همه طرف به اندازه 30dp فاصله داشته باشد از متد setMargins استفاده کردیم.
بعد از اینکار Seekbar را به Linear اضافه کردیم و برای Seekbar یک Listener از نوع setOnSeekBarChangeListener ایجاد کردیم تا هنگام تغییر آن به Event های مربوط به آن دسترسی داشته باشیم.
این آموزش هم به پایان رسید.
موفق باشید.