<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>
mldlq