zoukankan      html  css  js  c++  java
  • 拖动条(SeekBar)的功能和用法

          拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程序,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因而拖动条通常用于对系统的某种数值进行调节,比如调节音量等。

          SeekBar允许用户改变拖动条的滑块外观,改变滑块外观通过如下属性来指定。

    • android:thumb:指定一个Drawable对象,该对象将作为自定义滑块。     

          为了让程序能响应拖动条滑块位置的改变,程序可以程序可以考虑为它绑定一个OnSeekBarChangeListener监听器。

          下面通过一个实例来示范SeekBar的功能和用法。

           实例:通过滑块来改变图片的透明度

           该程序的界面布局中需要两个组件:一个ImageView用于显示图片,一个SeekBar用于动态改变图片的透明度。界面布局文件如下。

           

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
      >
     <ImageView android:id="@+id/image"
                android:layout_width="fill_parent"
                android:layout_height="240dp"
                android:src="@drawable/lijiang"/>
     
    <!-- 定义一个拖动条,并改变它的滑块外观 -->
    <SeekBar android:id="@+id/seekbar"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:max="255"
             android:progress="255"
             android:thumb="@drawable/ic_launcher" />
    
    </LinearLayout>

         上面的程序中粗体字代码定义了该拖动条的最大值、当前值都是255,并通过指定android:thumb属性来改变拖动条上滑块的外观。

          该示例的主程序比较简单,程序只要为拖动条绑定一个监听器,当滑块位置发生改变时动态改变ImageView的透明度即可。主程序如下。

    package org.crazyit.helloworld;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.ImageView;
    import android.widget.SeekBar;
    import android.widget.SeekBar.OnSeekBarChangeListener;
    
    public class SeekBarTest extends Activity {
         
        ImageView image;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.seek_bar_test);
            image=(ImageView)findViewById(R.id.image);
            SeekBar seekBar=(SeekBar)findViewById(R.id.seekbar);
            seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
    
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress,
                        boolean fromUser) {
                    // TODO Auto-generated method stub
                    //动态改变图片的透明度
                    image.setAlpha(progress);
                }
    
                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
                    // TODO Auto-generated method stub
                    
                }
    
                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
                    // TODO Auto-generated method stub
                    
                }
                
            });
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.seek_bar_test, menu);
            return true;
        }
    
    }

         上面的粗体字代码就是监听拖动条上滑块位置发生改变的关键代码;当滑块位置发生改变时,ImageView的透明度将变为该拖动条的当前数值。运行上面的Activity代码将看到如下效果:

       

  • 相关阅读:
    【SQLSERVER】动态游标的实现
    【Oracle】动态游标的实现
    【SQLSERVER】拷贝表数据
    LeetCode: Count and Say
    LeetCode: Construct Binary Tree from Preorder and Inorder Traversa
    LeetCode: Combinations
    LeetCode: Convert Sorted List to Binary Search Tree
    LeetCode: Decode Ways
    LeetCode: Combination Sum II
    LeetCode: Construct Binary Tree from Inorder and Postorder Traversal
  • 原文地址:https://www.cnblogs.com/wolipengbo/p/3386780.html
Copyright © 2011-2022 走看看