Android开发 ---基本UI组件4

1、activity_main.xml 

  描述:

    定义了一个按钮 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="其他控件"
android:onClick="test_4"/>
</LinearLayout>

2、MainActivity.java

  描述:

    页面跳转

package com.example.android_ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}public void test_4(View view){
Intent intent=new Intent(this,OtherUIActivity.class);
startActivity(intent);
}
}

3、activity_other_ui.xml

  描述:

    1、一段文本

    2、一个进度条 --SeekBar

    3、一个 星星评分条

    4、一个画圆圈式进度条

    5、从系统Theme.xml中引入的资源设置一个进度条 -----?表示从Theme中查找引用的资源名   

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/activity_other_ui"
android:layout_width="match_parent"
android:layout_marginLeft="10dp"
android:layout_height="match_parent">
<TextView
android:id="@+id/showText"
android:text="我是一段文字"
android:textSize="25sp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<SeekBar
android:id="@+id/seekBar"
android:max="60"
android:progress="0"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <RatingBar
android:id="@+id/ratingBar"
android:max="5"
android:progress="0"
android:stepSize="0.5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> <ProgressBar
android:id="@+id/pb1"
android:max="100"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ProgressBar
android:id="@+id/pb2"
android:max="100"
style="?android:progressBarStyleLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <ProgressBar
android:id="@+id/pb3"
android:max="100"
android:progress="10"
style="?android:progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<Button
android:layout_width="match_parent"
android:layout_weight="1"
android:text="开始"
android:onClick="doStart"
android:layout_height="wrap_content" />
<Button
android:layout_width="match_parent"
android:layout_weight="1"
android:text="停止"
android:onClick="doStop"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>

4、OtherUiActivity.java

package com.example.android_ui;

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.RatingBar;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast; public class OtherUIActivity extends Activity {
  //获取进度条
private SeekBar seekBar;
  //获取文本框
private TextView showText;
  //获取评分条
private RatingBar ratingBar;
  //获取圆圈式进度条
private ProgressBar pb3;
  
int count=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other_ui);
showText=(TextView)findViewById(R.id.showText); seekBar=(SeekBar)findViewById(R.id.seekBar);
ratingBar=(RatingBar)findViewById(R.id.ratingBar);
pb3=(ProgressBar)findViewById(R.id.pb3);
//seekBar拖动事件
     /*

      拖动进度条的事件监听需要实现SeekBar.OnSeekBarChangeListener接口,

      调用SeekBar的setOnSeekBarChangeListener把该事件监听对象传递进去进行事件监听。

      事件监听接口中有三个重要的方法:

        1、onStartTrackingTouch方法

        该方法拖动进度条开始拖动的时候调用。

        2、onStopTrackingTouch方法

        该方法拖动进度条停止拖动的时候调用

        3、onProgressChanged

        该方法拖动进度条进度改变的时候调用

      */

        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
       //参数b用来判断拖动是否结束,参数i表示当前进度
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
         //seekBar.getProgress()是获取拖动条当前值
         //shoqText.setTextSize()自绘制文字的大小
         //实现通过得到拖动条当前值来改变字体大小的目的
showText.setTextSize(seekBar.getProgress());
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//Toast.makeText(OtherUIActivity.this,"sk:"+seekBar.getProgress(),Toast.LENGTH_LONG).show();
}
}); //使用线程控制seekBar一直变化
new Thread(new Runnable() {
@Override
public void run() {
while(count<60){
//操作UI的代码运行在UI线程中
runOnUiThread(new Runnable() {
@Override
public void run() {
                 //设置进度条的当前值
seekBar.setProgress(count);
}
});
count++;
            //每改变一次停留半秒
SystemClock.sleep(500);
}
}
}).start();      //给星星评分条设置改变监听事件
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {
Toast.makeText(OtherUIActivity.this,"你打了"+v+"分",Toast.LENGTH_SHORT).show();
}
});
}
  
  
  //设置点击开始按钮,进度条开始运行,
boolean isRun=true;
  //进度条从0开始
int down=0;
public void doStart(View view){
new Thread(new Runnable() {
@Override
public void run() {
while(isRun){
//更新下载进度
down++;
pb3.setProgress(down);//唯一一个可以在UI多线程中更新的
SystemClock.sleep(200);
if(down>=100){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(OtherUIActivity.this,"数据下载完毕",Toast.LENGTH_LONG).show();
//当数据下载完毕时调用doStop()方法,停止进度条运行
                   doStop(null);
}
});
}
}
}
}).start();
}
  //当点击停止按钮时,进度条停止运行,并将进度条当前位置的值清空
public void doStop(View view){
isRun=false;
pb3.setProgress(0);
down=0;
}
}

Android开发 ---基本UI组件4:拖动事件、评分进度条、圆圈式进度条、进度条控制的更多相关文章

  1. Android开发 ---基本UI组件3:单选按钮、多选按钮、下拉列表、提交按钮、重置按钮、取消按钮

    Android开发 ---基本UI组件2 1.activity_main.xml 描述: 定义一个用户注册按钮 <?xml version="1.0" encoding=&q ...

  2. Android开发 ---基本UI组件2:图像按钮、单选按钮监听、多选按钮监听、开关

    Android开发 ---基本UI组件2 1.activity_main.xml 描述: 定义一个按钮 <?xml version="1.0" encoding=" ...

  3. Android开发 ---基本UI组件7 :分页功能、适配器、滚动条监听事件

    效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> ...

  4. Android开发 ---基本UI组件8:九宫格布局、setOnItemClickListener()项被选中监听事件

    效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> ...

  5. Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮

    效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...

  6. Android开发 ---基本UI组件6 :只定义一个listView组件,然后通过BaseAdapter适配器根据数据的多少自行添加多个ListView显示数据

    效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> ...

  7. Android开发---基本UI组件1:自动拨电话,自动上网,输入框不换行、只输数字、只输文本、只输密码

    1.activity_main.xml 描述:构建一个按钮 <?xml version="1.0" encoding="utf-8"?> <L ...

  8. android开发之自定义组件

    android开发之自定义组件 一:自定义组件: 我认为,自定义组件就是android给我们提供的的一个空白的可以编辑的图片,它帮助我们实现的我们想要的界面,也就是通过自定义组件我们可以把我们要登入的 ...

  9. ReactNative Android之原生UI组件动态addView不显示问题解决

    ReactNative Android之原生UI组件动态addView不显示问题解决 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com ...

随机推荐

  1. linux C access

    [1]作用 确定文件的访问权限 [2]头文件 #include <unistd.h> [3]函数定义 int access(const char * pathname,  int mode ...

  2. JavaScript实现全屏显示

    <!doctype html> <html> <head> <title>全屏显示</title> <meta charset=&qu ...

  3. idea 报错 :error:java:Compilation failed:internal java compiler error

    当使用Tomcat运行项目时报错 翻译一下是 错误:Java:编译失败:内部Java编译器错误 这样看来更不理解了 其实原因是Java的版本不一致 查看项目的jdk版本是否一致: file----pr ...

  4. 谷歌浏览器怎样把网页全部内容保存为.mhtml文件?

    Chrome保存.mhtml网页文件的方法: 在 Chrome 地址栏中键入chrome://flags,回车, 在页面搜索栏输入mhtml 把“Save Page as MHTML”项修改为 Ena ...

  5. No Directionality widget found

    The problem is not that you have not wrapped your widgets into MaterialApp. As the documentation say ...

  6. nginx 反向代理和正向代理功能 第六章

    一:Nginx作为正向代理服务器: 1.正向代理:代理(proxy)服务也可以称为是正向代理,指的是将服务器部署在公司的网关,代理公司内部员工上外网的请求,可以起到一定的安全作用和管理限制作用,正向代 ...

  7. 剑指offer(52)正则表达式的匹配

    题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式 ...

  8. element-ui checkbox传默认值的问题

    新入职一家公司了,准备把项目中遇到的问题随时记录下来.以前遇到的问题解决了没有记录,导致面试的时候问项目中遇到那些问题时,好多都忘了. 今天记录一下element-ui 的 checkbox 传递默认 ...

  9. 尚硅谷面试第一季-17Redis 在项目中的使用场景

    数据类型 使用场景 String 比如说 ,我想知道什么时候封锁一个IP地址.Incrby命令 Hash 存储用户信息[id,name,age] Hset(key,field,value) Hset( ...

  10. Windows下Python安装numpy+mkl,Scipy和statsmodels

    最近做时间序列分析需要用到Python中的statsmodels,但是安装过程中遇到很头疼的问题,Google.Stackover各种都没有找到合适的解决办法,而且貌似还有很多同学也在吐槽Window ...