SeekBar——拖动条
拖动条(SeekBar)组件与ProgressBar水平形式的显示进度条类似,不过其最大的区别在于,拖动条可以由用户自己进行手工的调节,例如当用户需要调整播放器音量或者电影的播放速度都会使用到拖动条SeekBar类。
android:thumb,指定一个Drawable对象,该对象将作为自定义滑块;为了实现程序拖动滑块位置的改变,程序可以绑定一个OnSeekBarChangeListener监听器。
android:thumb,用于改变拖动条上滑块的外观。
布局文件==》
<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" >
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="200px"
android:src="@drawable/ok" />
<!-- max最大值、progress当期值 -->
<SeekBar
android:id="@+id/seekbar"
android:max="255"
android:progress="255"
android:thumb="@drawable/no"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
代码实现==》
package com.example.myseekbar;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView img = (ImageView) this.findViewById(R.id.image);
SeekBar bar = (SeekBar) this.findViewById(R.id.seekbar);
bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
public void onStopTrackingTouch(SeekBar seekBar)
{
}
@Override
public void onStartTrackingTouch(SeekBar seekBar)
{
}
@SuppressWarnings("deprecation")
@Override
// 当拖动条的滑块位置发生改变时触发
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser)
{
img.setAlpha(progress);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}