本文主要是介绍SeekBar控件入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SeekBar控件是一个进度条的控件,我们再看视频或者听歌时,都能看到一个移动的进度条,而且还可以拖拽,就是今天我们要学习的这个控件,好了,现在开始学习。
api自带的SeekBar控件
效果图:
项目下载:
自带SeekBar控件小例子下载
activity_main.xml中的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:orientation="vertical" ><SeekBarandroid:id="@+id/seekBar1"android:layout_width="match_parent"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:textSize="20sp"android:text="" /></LinearLayout>
package com.test.seekbardemo;import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build;public class MainActivity extends Activity {private SeekBar seekBar1;private TextView textView1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bindViews();}private void bindViews() {seekBar1 = (SeekBar) findViewById(R.id.seekBar1);textView1 = (TextView) findViewById(R.id.textView1);seekBar1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {//进度移动时,进入这个方法,每一小点 的改变都要来执行一次//在这里给进度条下面的textView赋值,用于展示当前的进度刻度textView1.setText("当前进度值是:" + progress + " / 100 ");}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {//鼠标点击进度条时,触发的事件Toast.makeText(MainActivity.this, "点击SeekBar", Toast.LENGTH_SHORT).show();}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {//鼠标松开进度条时,触发的事件Toast.makeText(MainActivity.this, "放开SeekBar", Toast.LENGTH_SHORT).show();}});}}
自定义SeekBar控件
效果图:
项目下载:
自定义SeekBar项目下载
代码如下:
文件夹drawable下的seek_bar.xml代码如下:
<?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="#EE9A00" /></shape></item><!-- 第一进度,设置为紫色 --><item android:id="@android:id/progress"><clip><shape><solid android:color="#6959CD" /></shape></clip></item></layer-list>
<?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/solid"/><!-- 松开鼠标后,显示空心圆图片 --><item android:state_pressed="false" android:drawable="@drawable/hollow"/>
</selector>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:orientation="vertical" ><!-- 加载自定义的背景颜色和图片背景 --><SeekBarandroid:id="@+id/seekBar1"android:layout_width="match_parent"android:layout_height="wrap_content" android:progressDrawable="@drawable/seek_bar"android:thumb="@drawable/seek_thumb"/><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:textSize="20sp"android:text="" /></LinearLayout>
MainActivity.java中代码:
package com.test.seekbardemo;import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build;public class MainActivity extends Activity {private SeekBar seekBar1;private TextView textView1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bindViews();}private void bindViews() {seekBar1 = (SeekBar) findViewById(R.id.seekBar1);textView1 = (TextView) findViewById(R.id.textView1);seekBar1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {if (progress > 30 && progress < 50) {textView1.setTextColor(Color.GREEN);} else if (progress >= 50 && progress < 80) {textView1.setTextColor(Color.BLUE);} else if (progress >= 80) {textView1.setTextColor(Color.RED);}else {textView1.setTextColor(Color.BLACK);}textView1.setText("当前进度值是:" + progress + " / 100 ");}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {Toast.makeText(MainActivity.this, "点击SeekBar", Toast.LENGTH_SHORT).show();}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {Toast.makeText(MainActivity.this, "放开SeekBar", Toast.LENGTH_SHORT).show();}});}}
这篇关于SeekBar控件入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!