<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:max="100"
android:progressBackgroundTint="#7F7F7F"
android:progressTint="#7F7F7F"
android:thumb="@drawable/seekbar_thumb"/>
其中progressBackgroundTint和progressTint 为seekabr的进度条的完成的颜色和未完成的颜色,也可以用图片;
thumb为进度条上的图片。
seekbar_thumb 这里全部用一样的
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:drawable="@mipmap/icon_seekbar" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@mipmap/icon_seekbar" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@mipmap/icon_seekbar" />
<item android:drawable="@mipmap/icon_seekbar" />
</selector>
接下来说说这个和seekbar有关的界面的布局的实现
下面为水平的seekbar
之所以自定义MySeekBar,是为了禁止seekbar的拖动
<LinearLayout
android:id="@+id/ll_pro"
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:orientation="horizontal">
<FrameLayout
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv_go_play"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/icon_paly"/>
<ImageView
android:id="@+id/iv_go_pause"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/icon_pause"
android:visibility="gone"/>
</FrameLayout>
<com.xw.vehicle.mgr.ui.track.MySeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:max="100"
android:progressBackgroundTint="#7F7F7F"
android:progressTint="#7F7F7F"
android:thumb="@drawable/seekbar_thumb"/>
</LinearLayout>
MySeekBar :
public class MySeekBar extends SeekBar {
public MySeekBar(Context context) {
super(context);
}
public MySeekBar(Context context, AttributeSet attrs) {
this(context, attrs, android.R.attr.seekBarStyle);
}
public MySeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
/**
* 重写onTouchEvent方法 禁止拖动
*
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
//return super.onTouchEvent(event);
return false ;
}
}
垂直的seekbar
主要就是把 LinearLayout 旋转90度就可以了
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:orientation="horizontal"
android:padding="5dp"
android:rotation="90"
android:translationX="90dp">
<TextView
android:id="@+id/run_speed"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="2dp"
android:gravity="center"
android:rotation="-90"
android:text="1.0x"
android:textColor="@color/gray_33"
android:textSize="12sp" />
<SeekBar
android:id="@+id/verticalSeekBar"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:max="90"
android:progressBackgroundTint="@color/black"
android:progressTint="@color/black"
android:thumb="@drawable/seekbar_thumb"
android:visibility="visible" />
<TextView
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="2dp"
android:gravity="center"
android:rotation="-90"
android:text="10.0x"
android:textColor="@color/gray_33"
android:textSize="12sp" />
</LinearLayout>
以上。