拖動條(SeekBar)的功能與用法


拖動條和進度條非常相似,只是進度條采用顏色填充來表明進度完成的程度,而拖動條則通過滑塊的位置來標識數值——而且拖動條允許用戶拖動滑塊來改變值,因此拖動條通常用於對系統的某種數值進行調節,比如調節音量等。

由於拖動條SeekBar繼承了ProgressBar,因此ProgressBar所支持的XML屬性和方法完全適合用於SeekBar。

SeekBar允許用戶改變拖動條的滑塊外觀,改變滑塊外觀通過如下屬性來指定。

  • android:thumd:指定一個Drawable對象,該對象將作為自定義滑塊。
  • uandroid:tickMark:制定一個Drawable對象,該對象將作為自定義刻度圖標。

為了讓程序能響應拖動條滑塊位置的改變,程序可以考慮為它綁定一個OnSeekBarChangeListener監聽器。

下面是通過拖動滑塊改變圖片的透明度實例

布局文件如下。

<?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">
    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="240dp"
        android:src="@drawable/lijiang"/>
    <!--定義一個拖動條,並改變它的滑塊外觀-->
    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="255"
        android:progress="255"
        android:thumb="@mipmap/ic_launcher"/>
    <!--定義一個拖動條,並改變它的刻度圖標-->
    <SeekBar
        android:id="@+id/seekbar2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="10"
        android:tickMark="@drawable/tickmark"/>
</LinearLayou>

 主程序如下。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final ImageView image = findViewById(R.id.image);
        SeekBar seekBar = findViewById(R.id.seekbar);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { //動態改變圖片的透明度  image.setImageAlpha(progress); }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
    }
}

上面紅色字體代碼是監聽拖動條上滑塊位置發生改變的關鍵代碼,當滑塊位置發生改變時,ImageView的透明度將變為該拖動條的當前數值。運行程序如圖。

 

 改變拖動條后

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM