博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android View 之进度条+拖动条+星级评论条....
阅读量:7059 次
发布时间:2019-06-28

本文共 7208 字,大约阅读时间需要 24 分钟。

PS:将来的你会感谢现在奋斗的自己....

学习内容:

1.进度条

2.拖动条

3.星级评论条

 

1.进度条...    

  进图条这东西想必大家是很熟悉的...为了使用户不会觉得应用程序死掉了,因此为之设置一个进度条使应用程序的运行状态更好的反馈给客户...这也就是进度条的作用...因此一般的应用程序都会加入进度条...进度条分为圆形进度条和线性的进度条...目的都是一样的,只是展示的效果是不同的...用代码讲解一下...

  说一下细节的东西...这里style属性表示的是进度条是什么类型的...max表示进度条的最大值...progress表示第一级进度条的初始值...secondaryprogress表示第二级进度条的初始值...大家运行一下就能看得出来哪个是第一级哪个是第二级...然后定义了一个水平进度条,使用两个按钮来控制进度条的增加和减少...

package com.example.android_view;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.Window;import android.widget.ProgressBar;import android.widget.Button;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);              requestWindowFeature(Window.FEATURE_PROGRESS);//设置标题栏的进度条...        setContentView(R.layout.activity_main);        setProgressBarVisibility(true);//设置进度条的可见性,true可见 ,false不可见..               final ProgressBar progressbar_h=(ProgressBar)findViewById(R.id.progressbar_3);//获取水平进度条的id值..               setProgress(progressbar_h.getProgress()*100);//因为标题栏的进度条也是水平进度条,因此可以这样进行赋值....        setSecondaryProgress(progressbar_h.getProgress()*100);//设置标题栏的二级进度值..        Button but=(Button)findViewById(R.id.Button_1);        but.setOnClickListener(new Button.OnClickListener(){            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                progressbar_h.incrementProgressBy(5);//当点击按钮时每次进度条的值都会增加5...但是要*100...                setProgress(progressbar_h.getProgress()*100);            }                    });        Button but_1=(Button)findViewById(R.id.Button_2);        but_1.setOnClickListener(new Button.OnClickListener(){            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                progressbar_h.incrementProgressBy(-5);//这个就是-5了...同时也要*100...                setProgress(progressbar_h.getProgress()*100);            }            });            }       @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }  }

2.拖动条...

java文件...

package com.example.android_view;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.TextView;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;public class MainActivity extends Activity {    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv=(TextView)findViewById(R.id.myTextView);        SeekBar ser=(SeekBar)findViewById(R.id.seekbar_1);        ser.setProgress(60);        tv.setText("初始值为:"+60);        /*发现了个好玩的事情,就是注册监听有很多种写法...         * OnSeekBarChangeListener osbcl=new OnSeekBarChangeListener(){         *     内部方法...         * }         * OnSeekBarChangeListener osbcl=new SeekBar.OnSeekBarChangeListener(){         *     内部方法...         * }         * OnSeekBarChangeListener osbcl=(new SeekBar.OnSeekBarChangeListener(){         *     内部方法...         * });         * 上面这三种需要注册...ser.setOnSeekBarChangeListener(osbcl); 就可以使用了...         * ser.OnSeekBarChangeListener =(new SeekBar.OnSeekBarChangeListener(){         *     内部方法...         * });         * */        //这个监听内部有三种方法...都要进行重写...        OnSeekBarChangeListener osbcl=new OnSeekBarChangeListener() {            //停止拖动时的方法...            @Override            public void onStopTrackingTouch(SeekBar seekBar) {                // TODO Auto-generated method stub                MainActivity.this.tv.append("停止值为:"+seekBar.getProgress()+"\n");//字符串追加函数...将这些字符串追加到tv中...            }            //开始拖动时的方法...            @Override              public void onStartTrackingTouch(SeekBar seekBar) {                // TODO Auto-generated method stub                MainActivity.this.tv.append("开始值为"+seekBar.getProgress()+"\n");            }            //改变后的方法...            @Override            public void onProgressChanged(SeekBar seekBar, int progress,                    boolean fromUser) {                // TODO Auto-generated method stub                MainActivity.this.tv.append("正在拖动,当前值为:"+seekBar.getProgress()+"\n");            }        };        ser.setOnSeekBarChangeListener(osbcl);    }        @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }}

3.星级评分条...

  评论条这东西,只要是和客户利益挂钩的就一定会有..评论这个东西...星级评论条是非常常见的..比如说我们在淘宝买的东西到了以后就会给卖家一个评价,这个评价是星级+文字进行评价...使更多的消费者去了解卖家的状况...从而形成信息交互...

java文件...

package android.basic.lesson11;import android.app.Activity;import android.os.Bundle;import android.widget.RatingBar;import android.widget.RatingBar.OnRatingBarChangeListener;public class MainHelloRatingBar extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        //定义组件对象        final RatingBar rb1 = (RatingBar)findViewById(R.id.rat_1);        final RatingBar rb2 = (RatingBar)findViewById(R.id.rat_2;        final RatingBar rb3 = (RatingBar)findViewById(R.id.rat_3);        //定义评分监听器        OnRatingBarChangeListener orbcl= new OnRatingBarChangeListener(){             @Override             public void onRatingChanged(RatingBar ratingBar, float rating,                             boolean fromUser) {                                     switch(ratingBar.getId()){                                     case R.id.RatingBar01:                                             //把第一个评分条的值取出来设置给其他评分条                                             rb2.setRating(rb1.getRating());                                             rb3.setRating(rb1.getRating()*2);//十颗星所以乘以2                                                   break;                                     case R.id.RatingBar02:                                             rb1.setRating(rb2.getRating());                                             rb3.setRating(rb2.getRating()*2);                                                   break;                                     case R.id.RatingBar03:                                             rb1.setRating(rb3.getRating()/2);                                             rb2.setRating(rb3.getRating()/2);                                                   break;                        }                  }            } ;            //绑定监听器            rb1.setOnRatingBarChangeListener(orbcl);            rb2.setOnRatingBarChangeListener(orbcl);            rb3.setOnRatingBarChangeListener(orbcl);        }    }

总而言之,无论是进度条,拖动条,还是评分条...在应用程序中被广泛的应用...因此需要熟练掌握...

PS:最近打算做个闹钟app...祝自己成功....

 

 

 

 

 

 

 

                                                                                             

转载地址:http://zyfll.baihongyu.com/

你可能感兴趣的文章
【POJ3159】Candies 裸的pqspfa模版题
查看>>
Visual Studio 2017 针对移动开发的新特性介绍
查看>>
自定义Notification
查看>>
欧美软件外包系列 (一): 正确看待外包
查看>>
poj 1198 hdu 1401 搜索+剪枝 Solitaire
查看>>
C语言 int 转String
查看>>
SEO基础知识
查看>>
奇淫巧技之程序启动后在进程列表中隐藏密码等关键信息2
查看>>
Mysql5.6缓存命中率
查看>>
[LeetCode] Product of Array Except Self 除本身之外的数组之积
查看>>
c语言中 int *p = NULL 和 *p = NULL 有什么区别
查看>>
画图板--画直线代码
查看>>
[LeetCode] Shortest Word Distance II 最短单词距离之二
查看>>
libpq中调用prepared statement:
查看>>
判断C(n,k)的奇偶性 soj2668
查看>>
[转载]检测和解决SQL Server 2000 SP4 中的延迟和阻塞I/O问题
查看>>
《徐徐道来话Java》(2):泛型和数组,以及Java是如何实现泛型的
查看>>
从零开始理解JAVA事件处理机制(1)
查看>>
Standard Naming Procedure of Library(Report Painter)
查看>>
C++ substr() 和 Java substring() 区别
查看>>