Android自定义 ProgressDialog的实现

Android中自定义ProgressDialog实现加载滚动条(加载中…)效果 本文所述是通过自定义ProgressDialog实现弹出“加载中……”效果。 阅读详情

算是半改这篇文章吧,稍作修改,有不足之处,还请指正

纯转载不运行的事我不干,我的博客都是能运行的东西,不想让人看了没结果

http://blog.youkuaiyun.com/yeqishi/article/details/7622023

看看效果图


Android系统自带的ProgressDialog样式的确不太好看,我们可以自己定义它的样式,下面看看实现


1.style.xml  progressDialog继承与Dialog,先设置一下progressDialog的风格,设置背景图片。

<style name="CustomDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
    </style>

    <style name="CustomProgressDialog" parent="@style/CustomDialog">
        <item name="android:windowBackground">@drawable/toast_frame</item>
        <item name="android:windowNoTitle">true</item>
    </style>

2.customprogressdialog.xml文件,定义自己的布局,由于我的需求只需要一个进度条以及一串显示的内容,所以布局比较简单

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:padding="8dp" >

    <ProgressBar
        android:id="@+id/loadingImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="15dp"
        android:indeterminateDrawable="@drawable/progress_medium" />

    <TextView
        android:id="@+id/id_tv_loadingmsg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:textColor="@android:color/white"
        android:textSize="18dp" />

</LinearLayout>

3.progress_medium.xml文件.旋转效果。

<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/spinner_black_32"
    android:fromDegrees="0"
    android:pivotX="50.0%"
    android:pivotY="50.0%"
    android:toDegrees="360" />

4.CustomProgressDialog.java文件,这个是就是我们最终需要使用的progressDialog了。

package com.xxx.view;

import com.xxx.activity.R;

import android.app.Dialog;
import android.content.Context;
import android.view.Gravity;
import android.widget.TextView;

public class CustomProgressDialog extends Dialog {
	public CustomProgressDialog(Context context, String strMessage) {
		this(context, R.style.CustomProgressDialog, strMessage);
	}

	public CustomProgressDialog(Context context, int theme, String strMessage) {
		super(context, theme);
		this.setContentView(R.layout.customprogressdialog);
		this.getWindow().getAttributes().gravity = Gravity.CENTER;
		TextView tvMsg = (TextView) this.findViewById(R.id.id_tv_loadingmsg);
		if (tvMsg != null) {
			tvMsg.setText(strMessage);
		}
	}

	@Override
	public void onWindowFocusChanged(boolean hasFocus) {

		if (!hasFocus) {
			dismiss();
		}
	}
}


我修改的部分也就主要是这里,之前作者用静态方法去构造ProgressDialog,context无法释放,下面是我修改后的代码


在Activity里面构造showProgressDialog:我写在自己的父类里

public void showProgress(int resID, boolean canBack) {
		if (progressDialog != null) {
			progressDialog.cancel();
		}
		progressDialog = new CustomProgressDialog(activity, getResources()
				.getString(resID));
		progressDialog.show();
	}

子类继承调下这个方法就show出来了。



自定义ProgressDialog的实现 1.ProgressDialog之场景还原        最近在项目中,很多地方要加载H5界面,中间有个加载数据的空白档,为了不影响用户体验,ProgressDialog派上用场了。我喜欢简约,所以今天我就分享一个简约的自定义ProgressDialog的实现,效果图如下: 2.自定义ProgressDialog的用法 1.自定义ProgressDialog的style(在value 阅读详情

相关推荐

Android自定义ProgressDialog的四种样式设计与实现

本文还有配套的精品资源,点击获取 简介:ProgressDialog是Android应用中用于展示后台任务进度的组件。本教程将教你如何深入自定义ProgressDialog,包括基本用法、主题样式、布局定制、动画效果和交互逻辑,以提供四种不同样式,从而增强用户体验。 1. ProgressDialog基本用法 ProgressDialog 是 And...

weixin_42466723的博客 2023

【Android-Activity】ProgressDialog和样式设置

本文将介绍ProgressDialog的使用方式: 1、style①: mBtnProgressDialog1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ProgressDialog progressDialog = new ProgressDialog(ProgressActivity.this); progressDial

qq_40716430的博客 1064

android自定义ProgressDialog样式

android自定义ProgressDialog样式详解,一分钟教会你如何自定义android样式。

android progressdialog 样式,android之修改系统自带ProgressDialog样式

1.ProgressDialog默认样式是当前Activity的theme所定义的ProgressDialog样式。继承自父类AlertDialog的style.AlertDialog的源码static int resolveDialogTheme(Context context, int resid) {if (resid == THEME_TRADITIONAL) {return com.an...

weixin_33490603的博客 992

阿里云习题多选部分459道

比如: UserA的用户在杭州有一台经典网络的ECS云服务器InstanceA (内网IP: A.A.A),InstanceA所属的默认安全组为GroupA, UserB的用户在杭州有一台经 典网络的ECS云服务器InstanceB(内网IP:B.B.B),InstanceB所属的默认安全组为GroupB。43.创建阿里云的云服务器ECS实例之前,需要对ECS实例的配置进行选型,阿里云为用户提供了推荐的配置组合方案来满足大部分用户的需求,这些推荐配置只是作为开始使用云服务器ECS实例的参考。

2501_91384465的博客 1309

HFSS - 双频微带天线设计与仿真

一、设计指标 中心频率:1.9GHz、2.45GHz 匹配情况:中心频率处S11S_{11}S11​参数小于-20dB 介质板厚度:1.6mm 介质板介电常数:3.8 馈电方式:50Ω\OmegaΩ同轴线馈电 二、双频微带天线 获得双频工作的一种最简单的方法是辐射贴片的长度对应-一个频率谐振,其宽度对应另一个频率谐振,然后从对角线的一角馈电,就能使同一个辐射贴片工作于两个频率上。其结构如下图所示。 从图中可以得知,x轴上的A点(x,0)为激发TM10_{10}10​模式的50Ω\OmegaΩ馈电点,由

MaxWei 1万+

Android中ProgressDialog的使用

1.简介 ProgressDialog可以表示操作正在后台进行。如果使用的是转圈的ProgressDialog则可以配合Handler,如果是使用进度条形式的ProgressDialog则可以配合线程使用。 主要方法: setTitle:设置标题 setMessage:设置对话框消息内容 setIcon:设置图标 setProgress:设置当前进度值 setSecondProgress:设置...

‎‎‎‎‎不想吃泡面 662

AI:Coze、Dify、n8n:三款低代码工具如何选?

Coze、Dify、n8n:三款低代码工具如何选?

Kant2048的博客 2806

android 自定义progressdialog,Android 自定义progressDialog实现

我们在项目中经常会遇到这样一个应用场景:执行某个耗时操作时,为了安抚用户等待的烦躁心情我们一般会使用进度条之类的空间,在android中让大家最 容易想到的就是progressbar或者progressDialog,区别在于前者是一个控件,后者是对话框。由于一些需求在弹出进度条时不希望用户 能够操作其他控件,所以只能使用progressDialog,这个时候有遇到了一个问题,我不想要progres...

weixin_35817545的博客 683

从GAN生成失败案例出发:为什么你的AI画不准位置?CoordConv保姆级解决方案

本文深入探讨了GAN生成图像时位置偏移问题的根源,并提供了CoordConv的保姆级解决方案。通过分析传统CNN在空间坐标建模上的缺陷,详细介绍了CoordConv的原理、实现步骤及在StyleGAN2等模型中的实战应用,显著提升了医学图像生成等任务的定位精度。

pp12345的博客 204

UE5 Compute Shader实战:从基础到高级应用全解析

本文全面解析了在UE5中应用Compute Shader的完整流程,从基础概念、环境搭建到核心机制与实战应用。详细介绍了如何通过参数传递、线程派遣与数据读写实现GPU并行计算,并深入探讨了GPU粒子模拟、性能优化及结合光线追踪等高级应用场景,为开发者掌握UE5高性能计算提供系统指导。

yhn45678901的博客 499

Android 自定义progressDialog实现

我们在项目中经常会遇到这样一个应用场景:执行某个耗时操作时,为了安抚用户等待的烦躁心情我们一般会使用进度条之类的空间,在android中让大家最 容易想到的就是progressbar或者progressDialog,区别在于前者是一个控件,后者是对话框。由于一些需求在弹出进度条时不希望用户 能够操作其他控件,所以只能使用progressDialog,这个时候有遇到了一个问题,我不想要progres

水寒 9435

EBS开发_离散工单创建API

--以下代码于20171213在TONY环境中实现 DECLARE     l_iface_rec    wip.wip_job_schedule_interface%ROWTYPE; --工单任务接口表     l_group_id     NUMBER;     l_returnstatus VARCHAR2(40);     l_errormsg     VARCHAR2(2000

蜗牛先生快跑的博客 2596

Android中自定义ProgressDialog,实现全屏显示的效果

自定义的ProgressDialog: public class LoadingProgressDialog extends ProgressDialog { public LoadingProgressDialog(Context context) { super(context, R.style.Progress_Dialog); setCancel

Wtoria的博客 5214

我用 Python 把 Claude 变成了 “代码审查员“:每次提交前 AI 先 Review,Bug 漏网率降了 80%

这是成败的关键。我们需要给 Claude 立规矩,让它像一个严格的架构师那样思考。你是一名资深的首席软件架构师和安全专家。请审查以下 Git Diff 代码变更。你的任务是:1. **安全性检查**:寻找 SQL 注入、XSS、硬编码密钥、敏感信息泄露等。2. **潜在 Bug**:空指针、资源未关闭、竞态条件、逻辑死循环。3. **代码质量**:命名规范、冗余代码、可读性差、缺乏注释。4. **性能优化**:不必要的数据库查询、低效算法。

BUG猿的博客 143

CCF编程培训师资认证(PTA)标准(教学能力T)

随着计算机科学的不断发展,计算机相关技术应用到社会各个行业,越来越多的青少年参加到了计算机程序设计的学习中,这对编程培训教师提出了更高的专业要求和职业要求。CCF开展编程培训师资认证项目(Programming Trainer Accreditation,PTA),旨在建立一个规范的、科学的、权威且有公信力的三方认证。认证考试分编程专业能力(P)和教学能力(T)两部分。本标准根据《CCF编程培训师资认证条例》第十条制定,旨在明确教学能力(T)的测试标准。

lan_in的博客 1709

android 自定义progressDialog实现

我们在项目中经常会遇到这样一个应用场景:执行某个耗时操作时,为了安抚用户等待的烦躁心情我们一般会使用进度条之类的空间,在android中让大家最容易想到的就是progressbar或者progressDialog,区别在于前者是一个控件,后者是对话框。由于一些需求在弹出进度条时不希望用户能够操作其他控件,所以只能使用progressDialog,这个时候有遇到了一个问题,我不想要progressD

Rising Sun 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android自定义progressDialog实现载入动画

我们在项目中经常会遇到这样一个应用场景:执行某个耗时操作时,为了安抚用户等待的烦躁心情我们一般会使用进度条之类的空间,在android中让大家最 容易想到的就是progressbar或者progressDialog,区别在于前者是一个控件,后者是对话框。由于一些需求在弹出进度条时不希望用户 能够操作其他控件,所以只能使用progressDialog,这个时候有遇到了一个问题,我不想要progres

小地盘的诺克萨斯 3475

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android自定义progressDialog实现loading载中动画效果

http://www.android100.org/html/201403/07/5816.html http://www.open-open.com/lib/view/open1344504946405.html

雨一直下 4439
上一篇: Android 获取状态栏高度
下一篇: Android实现滑动的半屏筛选菜单(Path,云中书城,人人网客户端效果)
stilo2012
博客等级 码龄15年 14粉丝 5原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值