android学习SeekBar的使用

摘要:
SeekBar介绍听歌的时候,我们常常想快进或者快退到某一时间段,听歌的时候我们控制音量大小听歌,SeekBar可以通过滑块的位置来标示数值,而且拖动条允许用户拖动滑块来改变进度条的大小SeekBar的主要属性和方法setMax---设置SeekBar的最大数值setProgress---设置SeekBar的当前数值setSecondProgress---设置SeekBar的第二数值即当前拖动条的推荐位置SeekBar的事件由于拖动条可以诶用户控制。

SeekBar介绍
听歌的时候,我们常常想快进或者快退到某一时间段,听歌的时候我们控制音量大小听歌,SeekBar可以通过滑块的位置来标示数值,
而且拖动条允许用户拖动滑块来改变进度条的大小

SeekBar的主要属性和方法
(1)setMax --- 设置SeekBar的最大数值
(2)setProgress --- 设置SeekBar的当前数值
(3)setSecondProgress---设置SeekBar的第二数值

即当前拖动条的推荐位置
SeekBar的事件
由于拖动条可以诶用户控制。所以需要对其事件监听,这就需要实现SeekBar.OnSeekBarChangeListner接口,此接口共需监听
三个事件分别是:
数值改变----onProgressChanged
开始拖动----onStartTrackingTouch
停止拖动----onStopTrackingTouch
1,布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">
    <SeekBarandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/seekBar"android:max="100"android:progress="50"/>
    <TextView
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="New Text"android:id="@+id/textView" />
    <TextView
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="New Text"android:id="@+id/textView2" />
</LinearLayout>

2,MainActivity

public class MainActivity extends Activity implementsSeekBar.OnSeekBarChangeListener{

    privateSeekBar seekBar;
    privateTextView tv1;
    privateTextView tv2;
    @Override
    protected voidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        seekBar =(SeekBar)findViewById(R.id.seekBar);
        seekBar.setOnSeekBarChangeListener(this);
        tv1 =(TextView)findViewById(R.id.textView);
        tv2 =(TextView)findViewById(R.id.textView2);

    }
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, booleanfromUser) {
        tv2.setText(progress+"");
    }

    @Override
    public voidonStartTrackingTouch(SeekBar seekBar) {
        tv1.setText("开始拖动");
    }

    @Override
    public voidonStopTrackingTouch(SeekBar seekBar) {
        tv1.setText("停止拖动");
    }
}
自定义SeekBar的进度条
改变进度条的样式
android:ProgressDrawable = “@drawable/seekBar_img”
改变滑块的样式
android:thumb = @drawable/thumb
3,改变滑块的样式
和ProgressBar 一样,我们需要进入SeekBar 的样式文件看一看
 <style name="Widget.SeekBar">
        <item name="android:indeterminateOnly">false</item>
        <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
        <item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item>
        <item name="android:minHeight">20dip</item>
        <item name="android:maxHeight">20dip</item>
        <item name="android:thumb">@android:drawable/seek_thumb</item>
        <item name="android:thumbOffset">8dip</item>
        <item name="android:focusable">true</item>
        <item name="android:mirrorForRtl">true</item>
    </style>

我们可以看到他的滑块是这个样式@android:drawable/seek_thumb,继续我们可以在data esdrawable下找到seek_thumb.xml这个文件,他就是滑块的样式

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"android:state_window_focused="true"android:drawable="@drawable/seek_thumb_pressed" />

    <item android:state_focused="true"android:state_window_focused="true"android:drawable="@drawable/seek_thumb_selected" />

    <item android:state_selected="true"android:state_window_focused="true"android:drawable="@drawable/seek_thumb_selected" />

    <item android:drawable="@drawable/seek_thumb_normal" />

</selector>

可以看到他是一个选择器,这样,我们想要改变滑块的样式,只需要修改这个选择器即可。

在drawable下放置两种滑块图片

my_thumb.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/select"android:state_pressed="true"android:state_window_focused="true"/>
    <item android:drawable="@drawable/select"android:state_focused="true"android:state_window_focused="true"/>
    <item android:drawable="@drawable/select"android:state_selected="true"android:state_window_focused="true"/>
    <item android:drawable="@drawable/normal"/>

</selector>

更改SeekBar的thumb属性

 <SeekBar
        android:thumb="@drawable/my_thumb"android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/seekBar"android:max="100"android:progress="50"/>
就可以看到我们想要的滑块效果了。

免责声明:文章转载自《android学习SeekBar的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vgrant使用简易教程Flink 如何实时分析 Iceberg 数据湖的 CDC 数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android学习笔记技巧之给文本加边框

BorderTextViews.Java [java]view plaincopy packagexiaosi.BorderTextView; importandroid.content.Context; importandroid.graphics.Canvas; importandroid.graphics.Color; importand...

android结合Jenkins使用V2签名

今日客户对安卓apk进行代码扫描时发现漏洞,后经过研究解决办法为安卓V2签名。 解决办法:Jenkins只能用命令行去设置签名。 步骤1:ZipAlign zip对齐,因为APK包的本质是一个zip压缩文档,经过边界对齐方式优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗 ,通过空间换时间的方式提高执行效率(zipalign后的apk...

Delphi APP 開發入門(二)Android/iOS設定,Hello World

Delphi APP 開發入門(二)Android/iOS設定,Hello World 分享: Share on facebookShare on twitterShare on google_plusone_share  閲讀次數:9047 發表時間:2014/05/12 tags: 行動開發 教學 App Delphi XE6 Android...

设置安卓开机动画、开机logo

我们要修改的是system>media文件夹下的bootanimation.zip(手机开机动画)这个文件先来讲讲这个文件结构:该zip解压后得到两个文件,第一个目录存放了开机时播放的图片(图为佳域G3原厂的动绘图片包),见下图:图片编号001,002,.......010这些是用来控制图片播放顺序的。第二个 desc. txt的文本文档存放的数据...

Android弹出输入提示框--PopupWindow实现

  前言  之前直接用Dialog实现了弹出对话框。现在尝试用更好地解决方案--PopupWindow类--来实现   1.首先搞一个弹出框布局,和之前类似。   这样的东西,它的布局是这样: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android...

友盟官方文档

#  产品概述 关于分享和授权的sdk接口,我们在v4.4.0做出了巨大的改变,精简了接口调用的代码。并将分享授权,与评论等功能做出了隔离,使结构更加清晰。所以本版本的功能也只有分享与授权并无其他功能,请开发者注意。 注意:本文示例代码只有分享与授权功能,并对接口进行了调整,如需要原功能的开发者,请继续使用v4.3.0版本。 # 获取友盟Appkey 如果你...