#1 定义seekBar背景图片:
<?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/user_management_myseekbar_background">
</item>
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/user_management_myseekbar_background">
</item>
<layer-list xmlns:android=" http://schemas.android.com/apk/res/android" >
<item
android:id="@android:id/background"
android:drawable="@drawable/user_management_myseekbar_background">
</item>
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/user_management_myseekbar_background">
</item>
<!-- 设置第二进度:一般视频的缓存效果-->
<item
android:id="@android:id/progress"
android:drawable="@drawable/user_management_myseekbar_progress">
</item>
</layer-list>
<item
android:id="@android:id/progress"
android:drawable="@drawable/user_management_myseekbar_progress">
</item>
</layer-list>
#2 使用
android:layout_gravity="center_horizontal"
android:id="@+id/seekBar"
android:layout_width="284dp" 设置宽度最好根据背景图片一点点调
android:layout_height="wrap_content"
android:max="100"
android:maxHeight="16dp"
android:minHeight="16dp"
android:thumbOffset="0dp" 默认滑块中间从进度条开始滑动,设置为0dp则滑块最左边从进度条开始滑动
android:progress="0"
android:progressDrawable="@drawable/seekbar_style" 设置背景图片和进度的图片
android:thumb="@drawable/my_seekbar_thumb" /> 设置滑块的图片
二、 SeekBar带进度显示
# 1图片:
my_seekbar_thumb.png
user_management_myseekbar_background.png
user_management_myseekbar_progress.png
#2 xml:
seekbar_style.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="
http://schemas.android.com/apk/res/android" >
fragment_main.xml:
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
xmlns:tools="
http://schemas.android.com/tools"
# 3 代码:
public class MainActivity extends Activity {
private TextView tv_hint;
private SeekBar seekbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
tv_hint = (TextView) findViewById(R.id.tv_hint);
tv_hint.setText("0");
seekbar = (SeekBar) findViewById(R.id.seekbar);
seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
tv_hint.setText(progress+"");
int width = tv_hint.getWidth();
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
float i = (float) (2.65*progress+26);
int left = dip2px(MainActivity.this, i)-width/2;
lp.setMargins(left, 0, 0, 0);
tv_hint.setLayoutParams(lp);
}
});
}
public int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
}