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" >

    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android: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.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;

	@Override
	protected 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() {
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				//进度移动时,进入这个方法,每一小点 的改变都要来执行一次
				//在这里给进度条下面的textView赋值,用于展示当前的进度刻度
				textView1.setText("当前进度值是:" + progress + "  / 100 ");
			}

			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				//鼠标点击进度条时,触发的事件
				Toast.makeText(MainActivity.this, "点击SeekBar", Toast.LENGTH_SHORT)
						.show();
			}

			@Override
			public 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>


文件夹drawable下的seek_thumb.xml代码如下:

<?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>


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" >

    <!-- 加载自定义的背景颜色和图片背景 -->
    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:progressDrawable="@drawable/seek_bar"
        android:thumb="@drawable/seek_thumb"
        />

    <TextView
        android: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;

	@Override
	protected 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() {
			@Override
			public 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 ");
			}

			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				Toast.makeText(MainActivity.this, "点击SeekBar", Toast.LENGTH_SHORT)
						.show();
			}

			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				Toast.makeText(MainActivity.this, "放开SeekBar", Toast.LENGTH_SHORT)
						.show();
			}
		});
	}

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值