• 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();
                }
            });
    
        }
    
    }
  • 相关阅读:
    超级好用的excel导出方法,比phpexcel快n倍,并且无乱码
    PHP生成随机数;订单号唯一
    php判断检测一个数组里有没有重复的值
    修改git 提交的用户名和用户Email命令
    利用 PHP CURL zip压缩文件上传
    Linux 重启 PHP-FPM 命令
    Postgresql 时间串转换格式
    rollup node.js 打包工具
    PHP正则表达式提取html超链接中的href地址
    解决Ubuntu系统下 mysql 远程连接失败的问题 ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xx.xx' (110)
  • 原文地址:https://www.cnblogs.com/xianfeng-zhang/p/8086917.html
Copyright © 2020-2023  润新知