Android(安卓)UI 之 SeekBar
16lz
2021-01-25
转载自http://www.cnblogs.com/plokmju/p/android_ProgressBar.html,有改动
SeekBar是滑动条控件,间接继承自ProgressBar,也可以使用ProgressBar的属性设置。新增了属性android:thumb用以自定义滑块
当用户按住滑块进行滑动的时候,会触发一个SeekBar.OnSeekBarChangeListener事件,这是一个接口,需要开发人员实现三个方法:
onProgressChanged(SeekBar seekBar,int progress,boolean fromUser):滑块在移动的时候响应。seekBar为触发事件的SeekBar控件,progress为当前SeekBar的滑块数值,fromUser为是否用户拖动产生的响应。onStartTrackingTouch(SeekBar seekBar):滑块开始移动的时候响应。onStopTrackingTouch(SeekBar seekBar):滑块结束移动的时候相应。
Demo:
activity_main.xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- 用于显示滑动状态 --> <TextView android:id="@+id/textview_state" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" /> <!-- 用于显示滑块数值 --> <TextView android:id="@+id/textview_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" /> <!-- 可以用android:thumb指定滑块图片 --> <SeekBar android:id="@+id/seekbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:progress="20" /> </LinearLayout>
MainActivity.java:
package com.example.test;import android.app.Activity;import android.os.Bundle;import android.text.Html;import android.text.method.LinkMovementMethod;import android.view.Window;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;import android.widget.TextView;public class MainActivity extends Activity { private TextView state, num; private SeekBar seekBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); seekBar = (SeekBar) findViewById(R.id.seekbar); state = (TextView) findViewById(R.id.textview_state); num = (TextView) findViewById(R.id.textview_num); seekBar.setOnSeekBarChangeListener(seekBarChange); } private OnSeekBarChangeListener seekBarChange = new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { state.setText("停止拖动"); } @Override public void onStartTrackingTouch(SeekBar seekBar) { state.setText("开始拖动"); } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { num.setText("进度值" + progress); } }; }
更多相关文章
- android实现聊天页面的气泡
- Android——自定义音量调节控件
- [Android(安卓)Pro] Android开发实践:自定义ViewGroup的onLayout(
- android studio布局显示异常或空白
- android毛玻璃背景简单实现
- Android(安卓)Drawable之LevelListDrawable
- Android(安卓)dimens.xml中保存不带单位的数值
- Android(安卓)开源项目汇总
- [android]layout_weight 在layout_width 为fill_parent 与wrap_c