SeekBar是进度条。我们使用进度条时,可以使用系统默认的进度条;也可以自定义进度条的图片和滑块图片等。
下来是自定义thumb的seerBar,通过在drawable下写一个xml文件,做一个选择器。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/thumb_dn"/>
<item android:state_focused="true"
android:drawable="@drawable/thumb_dn"/>
<item android:drawable="@drawable/thbum"/>
</selector>
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/seekBar"
android:thumb="@drawable/thumb_bar"
android:max="100"
/>
然后在activity中实现SeekBar.OnSeekBarChangeListener的接口,重写方法。
ublic class Bofangyinyue extends AppCompatActivity implements View.OnClickListener,SeekBar.OnSeekBarChangeListener{
SeekBar seekBar;
ImageButton zuo,you,zanting;
Bitmap bitmap;
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bofangyinyue);
Toolbar toolbar = (Toolbar)findViewById(R.id.bofangyinyue_tool);
Intent intent = getIntent();
String title = intent.getStringExtra("title");
String artist = intent.getStringExtra("artist");
toolbar.setTitle(title);
toolbar.setSubtitle(artist);
toolbar.setNavigationIcon(R.drawable.jiantou);
setSupportActionBar(toolbar);
seekBar = (SeekBar)findViewById(R.id.seekBar);
zuo = (ImageButton)findViewById(R.id.zuo);
you = (ImageButton)findViewById(R.id.you);
zanting = (ImageButton)findViewById(R.id.zanting);
zuo.setOnClickListener(this);
you.setOnClickListener(this);
zanting.setOnClickListener(this);
seekBar.setOnSeekBarChangeListener(this);
imageView = (ImageView)findViewById(R.id.bofangfengmian);
int songid = intent.getIntExtra("songid",0);
int albumid = intent.getIntExtra("albumid",-1);
Log.d("issss",String.valueOf(albumid));
bitmap = getMusic.getArtwork(getContentResolver(),songid,albumid,false,false);
if(bitmap != null){
imageView.setImageBitmap(bitmap);
}else {
imageView.setImageResource(R.drawable.largefengmian);
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.zuo:
break;
case R.id.zanting:
new LooperThread().start();
break;
case R.id.you:
break;
}
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
class LooperThread extends Thread{
int i = 10;
@Override
public void run() {
while(true){
seekBar.setProgress(i);
i+=10;
Log.d("thread",String.valueOf(i));
try{
sleep(1000);
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
}
}
我们还可以自定义propress的样式,也是通过在drawable目录下,写一个xml文件。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/bar_up"
/>
<item android:id="@android:id/secondaryProgress" android:drawable="@drawable/bar_up"/>
<item android:id="@android:id/progress"
android:drawable="@drawable/bar_dn"
/>
</layer-list>
有关layer-list的用法见:
http://blog.csdn.net/qq_36391075/article/details/75278171)