📜  Android中的垂直SeekBar

📅  最后修改于: 2022-05-13 01:55:41.794000             🧑  作者: Mango

Android中的垂直SeekBar

Android 中的 SeekBar 是 ProgressBar 的扩展,其中包括一个可移动的拇指来实时更改进度。 Android ProgressBar 是一个用户界面控件,用于指示操作的进度。这些 SeekBars 和 ProgressBars 一般水平显示。然而,可以根据用户需要改变方向。

Android中的垂直SeekBar

因此,在本文中,我们将向您展示如何在 Android 中实现垂直 SeekBar。 IDE 准备就绪后,请按照以下步骤操作。

分步实施

第 1 步:在 Android Studio 中创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在Kotlin中演示了该应用程序,因此请确保在创建新项目时选择 Kotlin 作为主要语言。

第 2 步:使用 activity_main.xml 文件

导航到app > res > layout > activity_main.xml并将以下代码添加到该文件。下面是activity_main.xml文件的代码。添加一个 TextView 以显示进度和一个 Seekbar,如下所示。请注意在 SeekBar 中添加 270 度的旋转属性以使其完全垂直。

XML


  
    
  
    
  


Kotlin
package org.geeksforgeeks.verticalseekbar
  
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.SeekBar
import android.widget.TextView
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing 
        // the elements from the layout
        val mTextView = findViewById(R.id.text_view_1)
        val mSeekBar = findViewById(R.id.seek_bar_1)
  
        // Set the min, max and current
        // values to the SeekBar
        var mMin = 0
        var mMax = 100
        var mCurrent = 20
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            mSeekBar.min = mMin
            mSeekBar.max = mMax
        }
          
        // Set the current to progress
        // and display in the TextView
        mSeekBar.progress = mCurrent
        mTextView.text = mCurrent.toString()
  
        // On Change Listener to change 
        // current values as drag
        mSeekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
                mCurrent = p1
                mTextView.text = mCurrent.toString()
            }
  
            override fun onStartTrackingTouch(p0: SeekBar?) {}
            override fun onStopTrackingTouch(p0: SeekBar?) {}
        })
    }
}


第 3 步:使用 MainActivity.kt 文件

转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。

科特林

package org.geeksforgeeks.verticalseekbar
  
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.SeekBar
import android.widget.TextView
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing 
        // the elements from the layout
        val mTextView = findViewById(R.id.text_view_1)
        val mSeekBar = findViewById(R.id.seek_bar_1)
  
        // Set the min, max and current
        // values to the SeekBar
        var mMin = 0
        var mMax = 100
        var mCurrent = 20
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            mSeekBar.min = mMin
            mSeekBar.max = mMax
        }
          
        // Set the current to progress
        // and display in the TextView
        mSeekBar.progress = mCurrent
        mTextView.text = mCurrent.toString()
  
        // On Change Listener to change 
        // current values as drag
        mSeekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
            override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
                mCurrent = p1
                mTextView.text = mCurrent.toString()
            }
  
            override fun onStartTrackingTouch(p0: SeekBar?) {}
            override fun onStopTrackingTouch(p0: SeekBar?) {}
        })
    }
}

输出:

您可以看到 SeekBar 旋转了 270 度,并且进度随着用户的拖动而变化。