1.ProgressBar进度条
progressBar进度条是一个显示进度的控件,Android提供了两大类进度条样式,长形进度条样式progress-BarStyleHorizontal和圆形进度条progressBarStyleLarge.

常用方法:

"@+id/pb"    android:layout_width="match_parent"    android:layout_height="wrap_content"    //默认是圆形进度条,可以知道样式设置为水平进度条    style="?android:attr/progressBarStyleHorizontal"/>    //指定成水平进度条后,我们还可以通过 android:max属性给进度条设置一个最大值,然后在代码中动态地更改进度条的进度    android:max="100"

如何才能让进度条在数据加载完成时消失呢,这里我们就需要用一开始所讲的Android 控件的可见属性。
可以通过代码来设置控件的可见性,使用的是 setVisibility()方法,可以传入 View.VISIBLE、View.INVISIBLE 和 View.GONE 三种值。

下面实现点击一下按钮让进度条消失,再点击一下按钮让进度条出现的这种效果,这里只给出按钮监听的代码:

button.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                //通过 getVisibility()方法来判断 ProgressBar 是否可见                if (progressBar.getVisibility() == View.GONE) {                    progressBar.setVisibility(View.VISIBLE);                } else {                    progressBar.setVisibility(View.GONE);                }            }        });

关于TextView中文字单独在一行显示的时候实现跑马灯的方法

"@+id/tv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_weight="1"        android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView"         //主要是以下5个        android:ellipsize="marquee"        android:marqueeRepeatLimit="marquee_forever"        android:focusable="true"        android:focusableInTouchMode ="true"        android:singleLine="true" />

2.ANR+Handler

//ANR :application not responsing应用程序无响应    //why:因为在主线程中执行了 耗时的操作    //how:把耗时的操作 写到子线程中    public void start(View view){        new MyThread().start();    }    Handler handler=new Handler(){        //接受消息,并更新UI        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            //接受消息            int i=msg.what;//            更新UI            tv_progress_num.setText(i+"%");        }    };    class MyThread extends Thread{        @Override        public void run() {            super.run();            for (int i = 0; i <=100 ; i++) {                progressBar.setProgress(i);                //发消息                handler.sendEmptyMessage(i);                try {                    Thread.sleep(100);                } catch (InterruptedException e) {                    e.printStackTrace();                }            }        }    }

3.Toggle按钮开关

"wrap_content"        android:layout_height="wrap_content"        android:textOn="关"//关闭状态显示文本        android:textOff="开"//打开状态显示文本        android:id="@+id/tb_off"        android:layout_weight="0.3"        />

监听事件:

tb_off.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                if(isChecked){                    iv_sb.setImageAlpha(255);                }                else{                    iv_sb.setImageAlpha(0);                }            }        });

4.Switch拨动开关

<Switch        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:id="@+id/sw_on"        />

监听事件:

sw_on.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                if(isChecked){                    Toast.makeText(MainActivity.this, "开了嘞", Toast.LENGTH_SHORT).show();                }                else{                    Toast.makeText(MainActivity.this, "关了哦", Toast.LENGTH_SHORT).show();                }            }        });

5. SeekBar拖动条
SeekBar是ProgressBar的扩展,在其基础上增加了一个可滑动的滑片(注:就是那个可拖动的图标)。用户可以触摸滑片并向左或向右拖动,再或者可以使用方向键都可以设置当前的进度等级。不建议把可以获取焦点的widget放在SeekBar的左边或右边。

SeekBar可以附加一个SeekBar.OnSeekBarChangeListener以获得用户操作的通知。
常用属性:

"match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="10dp"        android:max="255"//最大值        android:id="@+id/sb_jdt"        android:background="#6ad1f6"        />

拖动实现透明度增减

sb_jdt.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {            @Override            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {                iv_sb.setImageAlpha(progress);            }            @Override            public void onStartTrackingTouch(SeekBar seekBar) {            }            @Override            public void onStopTrackingTouch(SeekBar seekBar) {            }        });

6.RatingBar评分条
RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互。

当使用可以支持用户交互的RatingBar时,无论将控件(widgets)放在它的左边还是右边都是不合适的。

只有当布局的宽被设置为wrap content时,设置的星星数量(通过函数setNumStars(int)或者在XML的布局文件中定义)将显示出来(如果设置为另一种布局宽的话,后果无法预知)。

次级进度一般不应该被修改,因为他仅仅是被当作星型部分内部的填充背景。

常用属性:

"wrap_content"        android:layout_height="wrap_content"        android:numStars="6"//多少星星        android:rating="2.5"//默认多少颗        android:stepSize="0.5"//每次递增减多少颗        android:id="@+id/rb_star"        android:layout_marginTop="20dp"        android:layout_gravity="center"        />

实现监听

rb_star.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {            @Override            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {                Toast.makeText(MainActivity.this, String.valueOf(rating)+"分", Toast.LENGTH_SHORT).show();            }        });

预览效果:

常用方法:
(1) public int getNumStars ()

返回显示的星型数量

返回值: 显示的星型数量

(2)public RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener ()

返回值

监听器(可能为空)监听评分改变事件

(3)public float getRating ()

获取当前的评分(填充的星型的数量)

返回值

当前的评分

(4)public float getStepSize ()

获取评分条的步长

返回值

The step size.

步长

(5)public boolean isIndicator ()

返回值

                        判断当前的评分条是否仅仅是一个指示器(注:即能否被修改)

(6)public void setIsIndicator (boolean isIndicator)

设置当前的评分条是否仅仅是一个指示器(这样用户就不能进行修改操作了)

参数

isIndicator Bool值,是否是一个指示器

(7)public synchronized void setMax (int max)

设置评分等级的范围,从0到max

参数

max 评分条最大范围。

(8)public void setNumStars (int numStars)

设置显示的星型的数量。为了能够正常显示它们,建议将当前widget的布局宽度设置为wrap content

参数

numStars 星型的数量

(9)public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)

设置当评分等级发生改变时回调的监听器

参数

listener 监听器

(10)public void setRating (float rating)

设置分数(星型的数量)

参数

rating 设置的分数

(11)public void setStepSize (float stepSize)

设置当前评分条的步长(step size)

更多相关文章

  1. android两种方式设置EditText不弹出软键盘
  2. 《第一行代码(第二版)》学习(二)
  3. Android关于LinearLayout的设置问题
  4. android之Progress
  5. Textview基本属性及功能
  6. Android(安卓)UI学习 - Tab的学习和使用
  7. android:windowSoftInputMode属性的使用
  8. android开发之权限问题整理
  9. android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果

随机推荐

  1. Android(安卓)Service的使用方法 音乐播
  2. Android事件分发机制
  3. 为android的HttpClient添加请求超时时间
  4. JavaEye Android(安卓)客户端正式发布
  5. 5个最佳的Android测试框架(带示例)
  6. AIDL --- Android中的远程接口
  7. Android,谁动了我的内存(1)
  8. Android组件及UI框架大全
  9. Activity and Task(二)
  10. 图解Android中的Binder机制