|
1.SeekBar基本用法
好吧,基本用法實際上很簡單,常用的屬性無非就下面這幾個常用的屬性,Java代碼裡只要setXxx即可:
- android:max="100" //滑动条的最大值
- android:progress="60" //滑动条的当前值
- android:secondaryProgress="70" //二级滑动条的进度
- android:thumb = "@mipmap/sb_icon" //滑块的drawable
複製代碼
接著要說下SeekBar的事件了,SeekBar.OnSeekBarChangeListener 我們直接調用三個對應的方法:
onProgressChanged:進度發生改變時會觸發
onStartTrackingTouch:按住SeekBar時會觸發
onStopTrackingTouch:放開SeekBar時觸發
簡單的代碼示例:
效果圖:
Android SeekBar 拖曳
實現代碼:
- public class MainActivity extends AppCompatActivity {
- private SeekBar sb_normal;
- private TextView txt_cur;
- private Context mContext;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mContext = MainActivity.this;
- bindViews();
- }
- private void bindViews() {
- sb_normal = (SeekBar) findViewById(R.id.sb_normal);
- txt_cur = (TextView) findViewById(R.id.txt_cur);
- sb_normal.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- txt_cur.setText("当前进度值:" + progress + " / 100 ");
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- Toast.makeText(mContext, "触碰SeekBar", Toast.LENGTH_SHORT).show();
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- Toast.makeText(mContext, "放开SeekBar", Toast.LENGTH_SHORT).show();
- }
- });
- }
- }
複製代碼
2.簡單SeekBar定制:
本來還想著著自定義下SeekBar的,後來想想,還是算了,涉及到自定義View的一些東西,可能初學者並不了解,看起來也有點困難,關於自定義View的還是放到進階那裡吧,所以這裡就只是簡單的定制下SeekBar!定制的內容包括滑塊,以及軌道!
運行效果圖:
Android SeekBar 拖曳
代碼實現: 1.滑塊狀態可繪製:sb_thumb.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/seekbar_thumb_pressed"/>
- <item android:state_pressed="false" android:drawable="@drawable/seekbar_thumb_normal"/>
- </selector>
複製代碼
貼下素材:
Android SeekBar 拖曳
Android SeekBar 拖曳
2.條形欄Bar的Drawable:sb_bar.xml
這裡用到一個layer-list的drawable資源!其實就是附加圖片,依次是:背景,二級進度條,當前進度:
- <?xml version="1.0" encoding="utf-8"?>
- <layer-list
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:id="@android:id/background">
- <shape>
- <solid android:color="#FFFFD042" />
- </shape>
- </item>
- <item android:id="@android:id/secondaryProgress">
- <clip>
- <shape>
- <solid android:color="#FFFFFFFF" />
- </shape>
- </clip>
- </item>
- <item android:id="@android:id/progress">
- <clip>
- <shape>
- <solid android:color="#FF96E85D" />
- </shape>
- </clip>
- </item>
- </layer-list>
複製代碼
3.然後佈局約會SeekBar後,設置下progressDrawable與thumb即可!
- <SeekBar
- android:id="@+id/sb_normal"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:maxHeight="5.0dp"
- android:minHeight="5.0dp"
- android:progressDrawable="@drawable/sb_bar"
- android:thumb="@drawable/sb_thumb"/>
複製代碼
就是這麼簡單!
文章出處
https://www.runoob.com/w3cnote/android-tutorial-seekbar.html
|
|