服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android实现带有进度条的按钮效果

Android实现带有进度条的按钮效果

2022-12-15 14:55安卓小飞 Android

这篇文章主要为大家详细介绍了Android实现带有进度条的按钮效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Android实现带有进度条按钮效果的具体代码,供大家参考,具体内容如下

安卓中带有进度条效果的按钮,如下图:

Android实现带有进度条的按钮效果

1.布局文件如下activity_main.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
   <TextView
     android:id="@+id/text"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="带有进度条的Button" />
 
   <RelativeLayout
     android:layout_width="fill_parent"
     android:layout_height="50dp"
     android:layout_centerHorizontal="true"
     android:layout_centerVertical="true"
     android:gravity="bottom" >
 
     <ProgressBar
       android:id="@+id/progressBar"
       style="?android:attr/progressBarStyleHorizontal"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:background="@drawable/aa_button_gray_normal"
       android:max="100"
       android:progress="0"
       android:progressDrawable="@drawable/progress_selector" />
 
     <Button
       android:id="@+id/downLoadBtn"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:layout_centerHorizontal="true"
       android:layout_centerVertical="true"
       android:background="@drawable/btn_selector"
       android:text="下载" />
   </RelativeLayout>
 
</RelativeLayout>

2.java主界面代码如下:MainActivity.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.example.buttondemo;
 
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
 
 public class MainActivity extends Activity {
   int i = 0;
   ProgressBar progressBar = null;
   Button downLoadBtn = null;
   Handler handler = new Handler() {
     public void handleMessage(android.os.Message msg) {
       switch (msg.what) {
       case 1:
         i += 5;
         progressBar.setProgress(i);
         if (i != 100) {
           handler.sendEmptyMessageDelayed(new Message().what = 1, 500);
           downLoadBtn.setText(i + "%");
         } else if (i == 100) {
           downLoadBtn.setText("下载完成");
           // 进度条运行完成时按钮可用
           downLoadBtn.setEnabled(true);
         }
         break;
 
       default:
         break;
       }
     };
   };
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     TextView tx = (TextView) findViewById(R.id.text);
     progressBar = (ProgressBar) findViewById(R.id.progressBar);
     downLoadBtn = (Button) findViewById(R.id.downLoadBtn);
     downLoadBtn.setOnClickListener(new View.OnClickListener() {
 
       @Override
       public void onClick(View v) {
         i = 0;
         handler.sendEmptyMessage(new Message().what = 1);
         // 进度条运行时按钮不可用
         downLoadBtn.setEnabled(false);
       }
     });
   }
 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_33847549/article/details/77947232

延伸 · 阅读

精彩推荐
  • Android安卓中出现过的一些容易被忽略的异常整理

    安卓中出现过的一些容易被忽略的异常整理

    今天小编就为大家分享一篇关于安卓中出现过的一些容易被忽略的异常整理,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友...

    pigdreams5382022-09-06
  • AndroidAndroid基于APN获取手机号的方法

    Android基于APN获取手机号的方法

    这篇文章主要介绍了Android基于APN获取手机号的方法,实例分析了Android使用APN获取手机号的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    华宰11172021-03-27
  • Androidandroid平台HttpGet、HttpPost请求实例

    android平台HttpGet、HttpPost请求实例

    出自网络搜索引擎巨头的Android平台,其对网络的支持自然不用多说,在Android SDK中已经集成了Apache的HttpClient模块。使用HttpClient模块,我们就可以使用HTTP协...

    Android开发网7702021-03-01
  • AndroidAndroid编程之Activity中onDestroy()调用分析

    Android编程之Activity中onDestroy()调用分析

    这篇文章主要介绍了Android编程之Activity中onDestroy()调用方法,针对onDestroy引起的内存泄露及解决方法进行了分析,并给出了解决方案,需要的朋友可以参考下...

    天使之翼11462021-04-22
  • Android解析Android开发优化之:对界面UI的优化详解(一)

    解析Android开发优化之:对界面UI的优化详解(一)

    在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织...

    Android开发网11242021-01-14
  • AndroidAndroid应用动态修改主题的方法示例

    Android应用动态修改主题的方法示例

    今天小编就为大家分享一篇关于Android应用动态修改主题的方法示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随...

    天人人3662022-10-11
  • Androidandroid如何添加桌面图标和卸载程序后自动删除图标

    android如何添加桌面图标和卸载程序后自动删除图标

    android如何添加桌面图标和卸载程序后自动删除桌面图标,这是一个应用的安装与卸载过程对桌面图标的操作,下面与大家分享下具体是如何实现的,感兴趣...

    Android开发网6792021-01-25
  • Android从源码分析Android的Volley库的工作流程

    从源码分析Android的Volley库的工作流程

    这篇文章主要介绍了从源码分析Android的Volley应用开发框架的工作流程,文中对Volley的请求处理和缓存部分介绍得比较详细,需要的朋友可以参考下...

    楚云之南11412021-06-09