分类:C#、Android、VS2015;

创建日期:2016-02-08

一、简介

进度条对话框(ProgressDialog)常用于不能在短时间内快速完成的操作,显示进度条的目的是为了让用户明白程序正在处理的进度,避免用户感觉莫名其妙。

本示例演示了两种进度条的基本用法:条形进度条和圆形进度条。

二、示例==Demo03ProgressDialog

1、运行截图

 

2、添加Demo03_ProgressDialog.axml文件

在layout文件夹下添加该文件。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/btnPprogress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="条形进度条" />
<Button
android:id="@+id/btnCircle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="圆形进度条" />
</LinearLayout>

3、添加Demo03ProgressDialog.cs文件

在SrcActivity文件夹下添加该文件。

using System;
using Android.App;
using Android.OS;
using Android.Widget; namespace ch06demos.SrcActivity
{
[Activity(Label = "Demo03ProgressDialog")]
public class Demo03ProgressDialog : Activity
{
private int progress;
private ProgressDialog dialog; protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Demo03_ProgressDialog);
var btnProgress = FindViewById<Button>(Resource.Id.btnPprogress);
btnProgress.Click += BtnProgress_Click;
var btnCircle = FindViewById<Button>(Resource.Id.btnCircle);
btnCircle.Click += BtnCircle_Click;
} private void BtnProgress_Click(object sender, EventArgs e)
{
progress = ;
dialog = new ProgressDialog(this)
{
Progress = progress,
Indeterminate = false,
};
dialog.SetProgressStyle(ProgressDialogStyle.Horizontal);
dialog.SetTitle("条形进度条示例");
dialog.SetMessage("正在下载……");
dialog.SetIcon(Resource.Drawable.Icon);
dialog.SetCancelable(true);
dialog.SetButton("取消", delegate
{
Toast.MakeText(this, "已取消下载!", ToastLength.Long).Show();
});
dialog.Show();
RunTask(showProgress: false);
} private void BtnCircle_Click(object sender, EventArgs e)
{
progress = ;
dialog = new ProgressDialog(this)
{
Progress = progress,
Indeterminate = false
};
dialog.SetProgressStyle(ProgressDialogStyle.Spinner);
dialog.SetTitle("环转圆形进度条示例");
dialog.SetMessage("正在下载……");
dialog.SetIcon(Resource.Drawable.Icon);
dialog.SetCancelable(true);
dialog.SetButton("取消", delegate
{
Toast.MakeText(this, "已取消下载!", ToastLength.Long).Show();
});
dialog.Show();
RunTask(showProgress: true);
} //模拟长时间执行的任务
private void RunTask(bool showProgress)
{
System.Threading.Tasks.Task.Run(() =>
{
while (progress < )
{
dialog.Progress = progress++;
if (showProgress)
{
RunOnUiThread(() =>
{
dialog.SetMessage("正在下载……" + progress + "%");
});
}
System.Threading.Thread.Sleep();
}
dialog.Cancel();
});
}
}
}

运行。

【Android】6.3 ProgressDialog的更多相关文章

  1. 【Android】一种提高Android应用进程存活率新方法

    [Android]一种提高Android应用进程存活率新方法 SkySeraph Jun. 19st 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph ...

  2. 【Android】Eclipse自动编译NDK/JNI的三种方法

    [Android]Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th  2014 Email:skyseraph00@163.com 更多精彩请直接访问SkySer ...

  3. 【Android】不依赖焦点和选中的TextView跑马灯

    前言 继承TextView,并仿照源码修改而来,主要是取消了焦点和选中了判断,也不依赖文本的宽度. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民 ...

  4. 【Android】Android 移动应用数据到SD

    [Android]Android 移动应用数据到SD 在应用的menifest文件中指定就可以了,在 <manifest> 元素中包含android:installLocation 属性, ...

  5. 【Android】如何快速构建Android Demo

    [Android]如何快速构建Android Demo 简介 在 Android 学习的过程中,经常需要针对某些项目来写一些测试的例子,或者在做一些 demo 的时候,都需要先写 Activity 然 ...

  6. 【Android】IntentService & HandlerThread源码解析

    一.前言 在学习Service的时候,我们一定会知道IntentService:官方文档不止一次强调,Service本身是运行在主线程中的(详见:[Android]Service),而主线程中是不适合 ...

  7. 【转】(转)【Android】Paint的效果研究

    转自:http://wpf814533631.iteye.com/blog/1847661 (转)[Android]Paint的效果研究 博客分类: android   在Paint中有很多的属性可以 ...

  8. 【Android】首次进入应用时加载引导界面

    参考文章: [1]http://blog.csdn.net/wsscy2004/article/details/7611529 [2]http://www.androidlearner.net/and ...

  9. 【Android】【录音】Android录音--AudioRecord、MediaRecorder

    [Android][录音]Android录音--AudioRecord.MediaRecorder Android提供了两个API用于实现录音功能:android.media.AudioRecord. ...

随机推荐

  1. The Web Sessions List

    The Web Sessions list contains the list of HTTP Requests that are sent by your computer. You can res ...

  2. 在webBrowser1.Navigate(url)中设置Cookie的注意点

    [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] public static exte ...

  3. java两种同步机制的实现 synchronized和reentrantlock

    java两种同步机制的实现 synchronized和reentrantlock 双11加保障过去一周,趁现在有空,写一点硬货,因为在进入阿里之后工作域的原因之前很多java知识点很少用,所以记录一下 ...

  4. 〖Linux〗Ubuntu13.04解决Chrome的flash中文乱码的问题。

    1. 安装flash sudo aptitude install flashplugin-installer 2. 禁用chrome自带的flash插件 在chrome浏览器中输入 chrome:// ...

  5. 11、final详解

    1.final修饰成员变量 即该成员被修饰为常量,意味着不可修改. 对于值类型表示值不可变:对于引用类型表示地址不可变 其初始化可以在三个地方 ①:定义时直接赋值 ②:构造函数 ③:代码块{}或者静态 ...

  6. iOS 图片部分模糊,类似于美图秀秀

    代码地址如下:http://www.demodashi.com/demo/14277.html 演示效果 演示效果 代码结构 项目结构截图如下: 该模块的核心源码部分为 MBPartBlurView, ...

  7. jQuery写一个简单的弹幕墙

    概述 近几年由于直播,弹幕流行起来,之前看到过用js制作弹幕墙的思路,觉得很有趣.自己就花了点时间把他做成了更灵活的jQuery插件,现在分享出来. 详细 代码下载:http://www.demoda ...

  8. 用户研究Q&A(1)

    近来,不少同事开始认同用户研究的价值,希望通过接触,理解和研究用户来获取提升产品的有效信息.这绝对是件好事,因为我一直抱持的理念是,研究并不是藏在实验室或者握在少部分人手中的稀罕货,更重要是一种理念和 ...

  9. MYSQL查询一周内的数据(最近7天的)

    select * from wap_content where week(created_at) = week(now) 如果你要严格要求是某一年的,那可以这样 查询一天: select * from ...

  10. hibernate4无法保存数据

    hibernate4无法保存数据 author: hiu 以后都发文章我都备注一下作者了,hiu就是我了 红色字体更新日期:2014-07-08 初次使用hibernate4,使用getCurrent ...