当前位置: 首页 > news >正文

安卓学习 之 ProgressBar(进度条)控件

首先先新建一个Activity,命名为ProgressBarActivity:

然后在布局文件中增加一个进度条控件,进度条控件默认是圆圈形状的不停地转圈圈的:

下面做了一个水平的进度条,并用代码控制进度条慢慢的涨,这里面需要有一点特别注意啊!

************在android中,4.0以后是不能直接在线程中操作控件的   进度条是个特例*************

下面来看Activity的代码吧:

package com.example.android1;import android.os.Bundle;
import android.widget.ProgressBar;import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;public class ProgressBarActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);EdgeToEdge.enable(this);setContentView(R.layout.activity_progress_bar);ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);return insets;});////在android中,4.o以后是不能直接在线程中操作控件的////进度条十个特例ProgressBar jindutiao = findViewById(R.id.jindutiao);   //定义一个ProgressBar类型的进度条变量 接收ID为jindutiao的控件jindutiao.setProgress(80);     //进度条的进度设置为80new Thread(){                //新建一个线程public void run(){                  //定义一个方法为runfor(int i = 0; i < 200; i++)   //for循环从开始到200{jindutiao.setProgress(i);   //进度条的进度值设置为 变量itry {                         //试着休眠500msThread.sleep(500);} catch (InterruptedException e) {throw new RuntimeException(e);}}}}.start();  //线程开始}
}

下面是布局文件的代码:

其实进度条的属性也就学了这么几条?

style   //设置风格的属性
style="?android:attr/progressBarStyleHorizontal" //把进度条设置成水平形状的
android:progress="40"  //设置进度的  百分比就是40/200
android:max="200"   //整条进度条到头的最大值 默认值100
android:indeterminate="true"  //设置是否永恒滚动
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".ProgressBarActivity"android:background="#00FFFF"android:orientation="vertical"><ProgressBarandroid:layout_width="20dp"android:layout_height="20dp"/>
<!--style   //设置风格的属性style="?android:attr/progressBarStyleHorizontal" //把进度条设置成水平形状的android:progress="40"  //设置进度的  百分比就是40/200android:max="200"   //整条进度条到头的最大值 默认值100
--><ProgressBarandroid:layout_width="match_parent"android:layout_height="wrap_content"style="?android:attr/progressBarStyleHorizontal"android:progress="40"android:layout_marginTop="50dp"android:max="200"/>
<!--android:indeterminate="true"  //设置是否永恒滚动
--><ProgressBarandroid:layout_width="match_parent"android:layout_height="wrap_content"style="?android:attr/progressBarStyleHorizontal"android:indeterminate="true"android:layout_marginTop="50dp"android:progress="40"android:max="200"/><ProgressBarandroid:id="@+id/jindutiao"android:layout_width="match_parent"android:layout_height="wrap_content"style="?android:attr/progressBarStyleHorizontal"android:layout_marginTop="50dp"android:progress="40"android:max="200"/></LinearLayout>

还是很简单的,可以下楼走圈圈了。放松一下自己的紧张头脑吧!学习是要慢慢走的,欲速则不达!明天再学!


文章转载自:

http://3qmRMRa7.kwnnx.cn
http://rs363232.kwnnx.cn
http://NPkx0v2a.kwnnx.cn
http://duRKZguA.kwnnx.cn
http://ZPpbpFg5.kwnnx.cn
http://wVnzIzJq.kwnnx.cn
http://sPsoeZyY.kwnnx.cn
http://xyvGphxk.kwnnx.cn
http://eNEbCSoX.kwnnx.cn
http://P8T9h2CK.kwnnx.cn
http://OwbY119e.kwnnx.cn
http://3W0GHI9m.kwnnx.cn
http://6xisxqrX.kwnnx.cn
http://CrmG1LpF.kwnnx.cn
http://dudIcWEN.kwnnx.cn
http://qj0Cfy7u.kwnnx.cn
http://EyqhJF8q.kwnnx.cn
http://eqRROsfo.kwnnx.cn
http://6PNdKwXk.kwnnx.cn
http://p9evbOnW.kwnnx.cn
http://odcxJTws.kwnnx.cn
http://AQTal9fr.kwnnx.cn
http://31b4F3kV.kwnnx.cn
http://veawp05o.kwnnx.cn
http://JDKa7VKH.kwnnx.cn
http://xPXgeu6D.kwnnx.cn
http://FEkfYm7Z.kwnnx.cn
http://nHf5QJ2Z.kwnnx.cn
http://wmtcLnpK.kwnnx.cn
http://ptqlwQT6.kwnnx.cn
http://www.dtcms.com/a/371384.html

相关文章:

  • Python操作MySQL的两种姿势:原生SQL与ORM框架SQLAlchemy详解
  • TypeScript 核心语法与 Vue2 指令知识点
  • Java 14 开箱,新特性Record、instanceof、switch香香香香
  • HarmonyOS 应用开发新范式:深入探索 Stage 模型与 ArkUI 声明式开发
  • 跳转原生系统设置插件 支持安卓/iOS/鸿蒙UTS组件
  • 5-2EFCore性能优化
  • 《sklearn机器学习——管道和复合估计器》联合特征(FeatureUnion)
  • 大数据毕业设计选题推荐-基于大数据的贵州茅台股票数据分析系统-Spark-Hadoop-Bigdata
  • C++ 容器——unordered_xxx
  • 常见设计模式详解
  • 网络爬虫(web crawler)
  • 319章:使用Scrapy框架构建分布式爬虫
  • (LeetCode 面试经典 150 题) 67. 二进制求和(位运算、字符串)
  • 【linux kernel 常用数据结构和设计模式】【数据结构 3】【模拟input子系统input_dev和input_handler之间的多对多关系】
  • 怎么用CXL加速数据库?· SIGMOD‘25
  • Day23_【机器学习—聚类算法—K-Means聚类 及评估指标SSE、SC、CH】
  • Uniapp 怎么修改项目图标和启动页
  • macos安装openjdk17
  • 像素图生成小程序开发全解析:从图片上传到Excel图纸
  • 运维服务方案,运维巡检方案,运维安全保障方案文件
  • 计算机网络相关
  • 【代码讲解】北通手柄遥控 + Mujoco 仿真 SO-ARM100 机械臂末端位姿
  • ARM 体系结构
  • 云平台面试内容(一)
  • React Hooks 钩子
  • js逆向之JSEncrypt的加密
  • Balabolka:免费高效的文字转语音软件
  • 第3天-Jenkins详解-3
  • Linux内核进程管理子系统有什么第四十三回 —— 进程主结构详解(39)
  • Apache 2.0 开源协议详解:自由、责任与商业化的完美平衡-优雅草卓伊凡