Kotlin-可调节加减的进度条

本文介绍了一个基于Kotlin的可调节进度条项目,通过简单的Java项目改造而成。提供了项目下载链接,详细展示了主界面布局、自定义进度条及带点击和长按监听的自定义按钮,并提到了在attr文件中的相关配置。
摘要由CSDN通过智能技术生成

1.效果图:

2.主界面,其实是从一个java项目,简单修改而来的 ,项目下载地址:https://github.com/wrs13634194612/KotlinProcess 

package com.ufi.pdioms.ztkotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import kotlinx.android.synthetic.main.activity_first.*
import kotlinx.android.synthetic.main.activity_main.*
import android.view.View.OnLongClickListener

class MainActivity : AppCompatActivity() {
    private var SYNC_INCSUB = 0
    private var BOOL_HP = false
    private var HP_Freq = 0
    private var LP_Freq = 0
    private var Freq = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_first)

        id_mcl_seekbar_valume.setOnSeekBarChangeListener { mhs_SeekBar, progress, fromUser ->
            Log.e("TAG", "progress: $progress ,fromUser: $fromUser")
            tv_main.text = (progress+20).toString()
            id_mcl_seekbar_valume.progress = progress
            Freq= progress
        }

        id_b_freq_dialog_inc.setOnClickListener {
            SYNC_INCSUB = 1
            Freq_INC_SUB(true)
        }

        id_b_freq_dialog_inc.setOnLongClickListener(object : OnLongClickListener{
            override fun onLongClick(p0: View?): Boolean {
                id_b_freq_dialog_inc.setStart()
                return false
            }
        })


        id_b_freq_dialog_inc.setOnLongTouchListener(object: LongCickButton.LongTouchListener{
            override fun onLongTouch() {
                SYNC_INCSUB = 1
                Freq_INC_SUB(true)
            }
        },100)

        //  =====    ---

        id_b_freq_dialog_sub.setOnClickListener {
            SYNC_INCSUB =0
            Freq_INC_SUB(false)
        }

        id_b_freq_dialog_sub.setOnLongClickListener(object : OnLongClickListener{
            override fun onLongClick(p0: View?): Boolean {
                id_b_freq_dialog_sub.setStart()
                return false
            }
        })


        id_b_freq_dialog_sub.setOnLongTouchListener(object: LongCickButton.LongTouchListener{
            override fun onLongTouch() {
                SYNC_INCSUB = 0
                Freq_INC_SUB(false)
            }
        },100)


    }

    private fun Freq_INC_SUB(inc: Boolean) {
        if (inc) {//递增
            if (BOOL_HP) {//高通
                if (++Freq > LP_Freq) {
                    Freq = LP_Freq
                }
            } else {
                if (++Freq > 480) {
                    Freq = 480
                }
            }
        } else {
            if (BOOL_HP) {//高通
                if (--Freq < 0) {
                    Freq = 0
                }
            } else {
                if (--Freq < HP_Freq) {
                    Freq = HP_Freq
                }
            }
        }

        id_mcl_seekbar_valume.progress = Freq
        tv_main.text = (Freq+20).toString()
    }
}

3.主界面布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:mhsb_seekbar="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_main"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="20"
        android:textSize="30sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <com.ufi.pdioms.ztkotlin.LongCickButto
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值