Android自定义 ProgressDialog的实现
来源:互联网 发布:湖南软件职业技术学院 编辑:程序博客网 时间:2024/06/09 21:09
算是半改这篇文章吧,稍作修改,有不足之处,还请指正
纯转载不运行的事我不干,我的博客都是能运行的东西,不想让人看了没结果
http://blog.csdn.net/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);}}@Overridepublic 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出来了。
- Android自定义 ProgressDialog的实现
- android 自定义progressDialog实现
- android 自定义progressDialog实现
- Android 自定义progressDialog实现
- Android 自定义progressDialog实现
- Android 自定义progressDialog实现
- Android 自定义progressDialog实现
- Android 自定义progressDialog实现
- Android 自定义progressDialog实现
- Android 自定义progressDialog实现
- Android 自定义progressDialog实现
- Android 自定义progressDialog实现
- android 自定义progressDialog实现
- Android 自定义progressDialog实现
- android 自定义progressDialog实现
- Android 自定义progressDialog实现
- android 自定义progressDialog实现
- android 自定义progressDialog实现
- UpdatePanel控件的使用(实现局部刷新,ajax)
- 翅与力量:
- java操作word文档 表格带有边框 乱码 问题
- 陌陌估值1亿美元:一个用户10美元,贵吗?
- Silverlight Isolated Storage 独立存储
- Android自定义 ProgressDialog的实现
- 奋斗——在毕业的边缘
- 工作总结
- 基于FMC接口的DSP TMS320C6455子卡模块
- 两步实现个人电脑上server-u搭建FTP服务器
- beans 的default-autowire属性
- 把exe嵌入到自己的exe中。delphi xe3
- windows server 2003 mysql 经常连接不上
- 感悟dota 成就人生