• 安卓界面高级组件------拖动条和评星条


    一      拖动条

            安卓手机音量设置都是给出一个拖动条,使得用户能够拖动滑块进行设置,这里我们介绍拖动条。

    安卓拖动条控件是继承自ProgressBar控件,所以它能够支持ProgressBar的xml属性。但是他有自己的独特属性:

            android:max       设置最大的拖动两

            android:progress     设置初始化进度

            android:thumb        设置滑块图形

    事件监听方面,拖动条需要注意:我们不在监听用户的点击操作,而是监听滑块的改变,下面用一个实例简单的操作一下拖动条。

    实例:界面上给出一个拖动条和文本,滑动滑块文本动态显示

    1.新建工程,在布局文件中加入一个文本和拖动条。这里我设置了当前进度值和滑块图形

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
    
            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="112dp"
                android:text="当前进度:0" />
    
            <SeekBar
                android:id="@+id/seekBar1"
                android:thumb="@drawable/penguin"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true" />
    
        </RelativeLayout>

    2.代码中获取文本和拖动条,给拖动条加监听器。监听器内部控制了文本的动态显示。监听有三个方法,注意:改写一下开始和结束滑动的方法,另外一个和是否是用户滑动有关,我们且不去管它

            tv = (TextView)findViewById(R.id.textView1);
            sb = (SeekBar)findViewById(R.id.seekBar1);
            
            sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                
                @Override
                public void onStopTrackingTouch(SeekBar s) {
                    final int p = s.getProgress();
                    tv.setText("当前进度:" + p);
                }//结束滑动
                
                @Override
                public void onStartTrackingTouch(SeekBar s) {
                    tv.setText("正在拖动!");
                    
                }//开始滑动
                
                @Override
                public void onProgressChanged(SeekBar s, int arg1, boolean arg2) {
                    
                    
                }
            });

    运行代码,滑动滑块,能够看到文本根据滑动动态的显示内容。

    二     评星条

            很多视屏软件和是应用市场软件都有评星的功能,这是的评分应用场景是:拖动评星条,之后点击某个提交按钮完成评分。这里我们简单看一下评星条的属性,之后模拟一个类似的评星功能。

           android:isIndicator       表明是指示器,也就是能不能被用户评分,值为"true"不能被改变

           android:numStars        评星条的星星总数

           android:rating              评星条的默认星级

           android:stepSize          评星一次变化的分量,默认状态下为0.5,用户一次拖动改变0.5的星级

    实例:做一个简单的评分界面

     1.新建工程,布局中加入显示文本,评星条,提交按钮

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
    
            <RatingBar
                android:id="@+id/ratingBar1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="184dp" />
    
            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/ratingBar1"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="100dp"
                android:text="评分:" />
    
            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/ratingBar1"
                android:layout_centerHorizontal="true"
                android:text="提交" />
    
        </RelativeLayout>

    2.在主Activity里面实例化显示文本,评星条,按钮

            tv = (TextView)findViewById(R.id.textView1);
            asb = (RatingBar)findViewById(R.id.ratingBar1);
            b = (Button)findViewById(R.id.button1);
      

    3.给按钮加监听事件,获取评星条的评分,显示到文本中去。评星的获取通过getRating()方法

            b.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    
                    final float r;
                    r = asb.getRating();
                    tv.setText("评分"+ r +"星");
                }
            });

    运行代码,效果如下:

    希望自己能写出通俗易懂的文章,希望大家留言评论!

  • 相关阅读:
    javascript 3秒钟后自动跳转到前一页面
    meta
    HTML 5 label
    WCF的ABC
    由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。
    ECMASCRIPT5新特性(转载)
    bin目录正.pdb是什么文件?
    PS切图的相关技巧
    MongoVUE破解方法
    ASP.NET MVC Area操作
  • 原文地址:https://www.cnblogs.com/divingpig/p/6481620.html
Copyright © 2020-2023  润新知