Android 中带有进度条效果的按钮(Button)
16lz
2021-01-23
安卓中带有进度条效果的按钮,如下图:
1.布局文件如下activity_main.xml
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context=".MainActivity" >10 11 <TextView 12 android:id="@+id/text"13 android:layout_width="wrap_content"14 android:layout_height="wrap_content"15 android:text="带有进度条的Button" />16 17 <RelativeLayout 18 android:layout_width="fill_parent"19 android:layout_height="50dp"20 android:layout_centerHorizontal="true"21 android:layout_centerVertical="true"22 android:gravity="bottom" >23 24 <ProgressBar 25 android:id="@+id/progressBar"26 style="?android:attr/progressBarStyleHorizontal"27 android:layout_width="fill_parent"28 android:layout_height="fill_parent"29 android:background="@drawable/aa_button_gray_normal"30 android:max="100"31 android:progress="0"32 android:progressDrawable="@drawable/progress_selector" />33 34 <Button 35 android:id="@+id/downLoadBtn"36 android:layout_width="fill_parent"37 android:layout_height="fill_parent"38 android:layout_centerHorizontal="true"39 android:layout_centerVertical="true"40 android:background="@drawable/btn_selector"41 android:text="下载" />42 </RelativeLayout>43 44 </RelativeLayout>
2.java主界面代码如下:MainActivity.java
1 package com.example.buttondemo; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.os.Handler; 6 import android.os.Message; 7 import android.view.View; 8 import android.widget.Button; 9 import android.widget.ProgressBar; 10 import android.widget.TextView; 11 12 public class MainActivity extends Activity { 13 int i = 0; 14 ProgressBar progressBar = null; 15 Button downLoadBtn = null; 16 Handler handler = new Handler() { 17 public void handleMessage(android.os.Message msg) { 18 switch (msg.what) { 19 case 1: 20 i += 5; 21 progressBar.setProgress(i); 22 if (i != 100) { 23 handler.sendEmptyMessageDelayed(new Message().what = 1, 500); 24 downLoadBtn.setText(i + "%"); 25 } else if (i == 100) { 26 downLoadBtn.setText("下载完成"); 27 // 进度条运行完成时按钮可用28 downLoadBtn.setEnabled(true); 29 } 30 break; 31 32 default: 33 break; 34 } 35 }; 36 }; 37 38 @Override 39 protected void onCreate(Bundle savedInstanceState) { 40 super.onCreate(savedInstanceState); 41 setContentView(R.layout.activity_main); 42 TextView tx = (TextView) findViewById(R.id.text); 43 progressBar = (ProgressBar) findViewById(R.id.progressBar); 44 downLoadBtn = (Button) findViewById(R.id.downLoadBtn); 45 downLoadBtn.setOnClickListener(new View.OnClickListener() { 46 47 @Override 48 public void onClick(View v) { 49 i = 0; 50 handler.sendEmptyMessage(new Message().what = 1); 51 // 进度条运行时按钮不可用52 downLoadBtn.setEnabled(false); 53 } 54 }); 55 } 56 57 }
更多相关文章
- Android Studio 3.5.1 在项目的build.gradle中添加百分比布局库
- Android自定义Dialog(自定义主题、自定义布局)
- Android 的整体布局
- android 超简单的拖动按钮 悬浮按钮 吸附按钮
- android 五种 布局文件
- Android Studio 新建编辑条 点击按钮显示控件中的内容
- android 组件,xml布局中属性详解
- android 坐标布局 AbsoluteLayout