Android基础控件SeekBar拖动条的使用

1、简介

  SeekBar继承ProgressBar,相关属性和三种不同状态下的触发方法:

        <!--<SeekBar-->
            <!--android:layout_width="match_parent"-->
            <!--android:layout_height="wrap_content"-->
            <!--android:max="100"-->
            <!--android:progress="30"-->
            <!--android:id="@+id/seekbar"-->
            <!--android:thumb="@mipmap/ic_launcher_round"/>-->//设置滑块的
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override//进度发生改变
            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
            }

            @Override//按下
            public void onStartTrackingTouch(SeekBar seekBar) {
            }

            @Override//放开
            public void onStopTrackingTouch(SeekBar seekBar) {
            }
        });

2、简单使用

  这是一个简单自定义的SeekBar,浅绿色是进度条颜色,红色是二级进度条颜色,黄色是背景色!

  滑块的selector文件:

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

  进度条颜色layer-list文件: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="#f23f21" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#FF96E85D" />
            </shape>
        </clip>
    </item>

</layer-list>

  整体xml布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".LoginActivity">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="当前进度值:30"
            android:id="@+id/textview"/>
        <SeekBar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/seekbar"
            android:progress="30"
            android:secondaryProgress="50"
            android:maxHeight="5dp"
            android:minHeight="5dp"
            android:progressDrawable="@drawable/sb_bar"
            android:thumb="@drawable/sb_thumb"/>

</LinearLayout>

  Java文件三种状态事件的触发:

public class LoginActivity extends AppCompatActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        // Set up the login form.

        SeekBar seekBar = (SeekBar)findViewById(R.id.seekbar);
        final TextView textView = (TextView)findViewById(R.id.textview);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override//进度发生改变
            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
                textView.setText("当前进度值:"+i);
            }

            @Override//按下
            public void onStartTrackingTouch(SeekBar seekBar) {
                Toast.makeText(LoginActivity.this,"按下",Toast.LENGTH_SHORT).show();
            }

            @Override//放开
            public void onStopTrackingTouch(SeekBar seekBar) {
                Toast.makeText(LoginActivity.this,"放开",Toast.LENGTH_SHORT).show();
            }
        });

    }

}
时间: 2024-10-05 03:03:40

Android基础控件SeekBar拖动条的使用的相关文章

Android基础控件——SeekBar的使用、仿淘宝滑动验证

学习,学习,学以致用 SeekBar是一个拖动条控件,最简单的案例就是我们的调节音量,还有音频视频的播放,传统的SeekBar样式,如图 传统的实现太简单,不足以让我们到能装逼的地步.本来是打算实现滴滴出行滑动完成订单的效果,可惜找不到效果图,今天也就用淘宝的滑动验证来作为实例 SeekBar:使用progressDrawable属性自定义SeekBar 拖动块:使用thumb属性更改,其实就是一张图片 文字:使用RelativeLayout嵌套在一起 其效果是 android:max:设置进度

Android基础控件ProgressBar进度条的使用

1.简介 ProgressBar继承与View类,直接子类有AbsSeekBar和ContentLoadingProgressBar, 其中AbsSeekBar的子类有SeekBar和RatingBar! android:max:进度条的最大值 android:progress:进度条已完成进度值 android:progressDrawable:设置轨道对应的Drawable对象 android:indeterminate:如果设置成true,则进度条不精确显示进度 android:indet

Android基础控件使用汇总

平时写代码总会遇到一些问题,准备写一个比较基础的控件使用汇总系列!本系列持续不定期更新,希望能够帮到需要的朋友!get! Android基础控件使用细节--TextView Android基础控件使用细节--Button Android基础控件使用细节--EditText Android基础控件使用细节--ImageView Android基础控件使用细节--WebView Android基础控件使用细节--ListView Android基础控件使用细节--Menu Android基础控件使用

Android常用控件:进度条

各种进度条属于 ProgressBar的子类 Sytle: 水平风格:Horizontal小风格:Small大风格:Large反向风格:Inverse小反向风格:Small.Inverse大反向风格:Large.Inverse 设置style:   style="?android:attr/progressBarStyle..." 主要属性:最大值:max当前进度:progress次要进度值:SecondaryProgress --效果类似于看电影那些缓冲 判断进度条是转圈还是水平的方

Android基础控件——SwipeRefreshLayout最简单的下拉刷新

还在使用传统的下拉刷新,觉得不够漂亮,怕被产品经理骂吗? 还在忧愁自己技术不够好,不会改造带动画的下拉刷新吗? 那么不要担心,使用SwipeRefreshLayout最简单的下拉刷新,既不失美观又简洁 SwipeRefreshLayout下拉刷新是Google自家的下拉刷新控件,使用过程跟开源库PullToRefresh差不多,废话不多说,开车啦 SwipeRefreshLayout实质上是一个ViewGroup,所以我们将其作为我们的根布局进行演示 经过这个步骤之后,其实在页面上就已经能够下拉

Android基础控件——ViewPager实现带有动画的引导页

好了,又到我们学习基础控件的时候了,其实引导页很简单,就是五张图片而已 传统的ViewPager实现引导页和ListView是一样道理的,只是把ListView的Item换成图片,把BaseAdapter换成PagerAdapter,我们先来看下传统引导页的效果图 既然用到的是ViewPager,那么xml文件就必须要有ViewPager,细心的你,可能会发现最后一页还有个按钮的出现,没错,xml文件中也要有个按钮 开头也说了,Viewpager其实就和ListView一样的,需要一个Adapt

Android基础控件使用细节——ListView

这个系列准备了很久,由于项目比较紧,一直没时间写博客. ListView是Android开发中使用比较广泛的控件了,这里会结合实际开发中的问题,做一个汇总,并不断更新补充,希望以后可以帮到更多需要的朋友! 有时候为了精简代码,不使用xml布局文件了,直接setContentView(mListView);,这时就要用到代码里硬编码设置ListView的样式了,本人开发时遇到一个奇葩问题,给ListView设置分割线,没有效果,擦,坑爹呢,找了好多资料,遇到这问题的不是我一个人,竟然没人解决,有人

Android基础控件使用细节——WebView

在开发中经常会出现莫名其妙的问题,做个记录,方便以后汇总,该系列将不定期更新! WebView是android的一个组件,它的内核是基于开源WebKit引擎.如果我们对WebView进行一些美化.包装,可以非常轻松的开发出自己的浏览器. 1.禁止超链接的时候调用其他浏览器 今天调用网页显示控件,一组轮播图,根据服务器返回的URL连接做网页显示,同样的格式,有的可以正常在WebView中打开,有的会莫名其妙的弹出了浏览器选择框.很郁闷! 搜索了一下,找到解决方案,两步搞定,如下: step1:首先

Android基础控件之Button的基本使用

Button基本使用方法 首先,添加Button控件到XML布局文件中.也可通过程序添加. 在布局文件中设置按钮的一些属性,如位置,宽高,按钮上的字,颜色等. 比较重要的是要给按钮一个id号,这是按钮唯一的名字. 这样在程序中可以通过如下形式获得按钮: button = (Button)findViewById(R.id.buttonId); 处理按钮点击 按钮点击有两种处理方法. 第一种是通过onClick属性,通过这个属性设置处理点击事件的方法名,在Activity中实现这个方法. 另一种方