📜  Android |创建一个SeekBar

📅  最后修改于: 2021-05-10 14:41:50             🧑  作者: Mango

Android SeekBar是一种ProgressBar 。触摸搜索栏上的拇指并将其向右或向左拖动时,进度的当前值会更改。 SeekBar用于前进或后退歌曲,视频等。setOnSeekBarChangeListener接口用于提供三种方法。

  1. onProgressChanged :在此方法中,更改进度,然后根据此更改在我们的逻辑中使用进度值。
  2. onStartTrackingTouch :在此方法中,当用户开始拖动时,将自动调用此方法。
  3. onStopTrackingTouch :在此方法中,当用户停止拖动时,将自动调用此方法。

以下是创建SeekBar Android应用程序的步骤:

  • 第1步:创建一个新项目。之后,您将拥有Java和XML文件。

  • 步骤2:打开您的xml文件,并添加SeekBar和TextView作为消息,如下所示,SeekBar中的max属性定义了它可以使用的最大值。将ID分配给SeekBar和TextView。

  • 步骤3:现在,打开活动Java文件,然后定义SeekBar和TextView变量,使用findViewById()获取SeekBar和TextView。
  • 步骤4:执行搜索栏更改侦听器事件,该事件用于获取进度值。通过使用此事件侦听器,我们可以获得Prograss的值,并通过使用TextView显示进度,这将增加大小。
  • 步骤5:现在运行该应用程序并触摸拇指,然后将其拖动,文本大小将自动增加。

MainActivity的完整代码。 SeekBar的Java或activity_main.xml如下所示:

activity_main.xml


  
    
    
  


MainActivity.java
package org.geeksforgeeks.navedmalik.seekbar;
  
// Import the libraries
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;
  
public class MainActivity extends AppCompatActivity {
  
    // Define the global variable
    SeekBar seekbar;
    TextView Text_message;
  
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
  
        // Binding the layout to the file
        setContentView(R.layout.activity_main);
  
        // use findViewById() to get the Button
        Text_message
            = (TextView)findViewById(R.id.message_id);
        seekbar
            = (SeekBar)findViewById(R.id.seekbar);
  
        // Get the progress value of the SeekBar
        // using setOnSeekBarChangeListener() method
        seekbar
            .setOnSeekBarChangeListener(
                new SeekBar
                    .OnSeekBarChangeListener() {
  
                        // When the progress value has changed
                        @Override
                        public void onProgressChanged(
                            SeekBar seekBar,
                            int progress,
                            boolean fromUser)
                        {
  
                            // increment 1 in progress and
                            // increase the textsize
                            // with the value of progress
                            message.setTextSize(progress + 1);
                        }
  
                        @Override
                        public void onStartTrackingTouch(SeekBar seekBar)
                        {
  
                            // This method will automatically
                            // called when the user touches the SeekBar
                        }
  
                        @Override
                        public void onStopTrackingTouch(SeekBar seekBar)
                        {
  
                            // This method will automatically
                            // called when the user
                            // stops touching the SeekBar
                        }
                    });
    }
}


输出: