【移动应用开发技术】自定义ProgressDialog_第1页
【移动应用开发技术】自定义ProgressDialog_第2页
【移动应用开发技术】自定义ProgressDialog_第3页
【移动应用开发技术】自定义ProgressDialog_第4页
【移动应用开发技术】自定义ProgressDialog_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】自定义ProgressDialog

最近工作中需要用到progressDialog,可是系统自带的黑色progressDialog又是其丑无比,无奈只能自己自定义了,在网上查看别人的例子,并自己整理了一份Demo:先上图:MyProgressDialog:packagecom.example.myprogressdialog_zzw;importandroid.app.Dialog;importandroid.content.Context;importandroid.graphics.drawable.AnimationDrawable;importandroid.view.Gravity;importandroid.view.View;importandroid.view.animation.Animation;importandroid.widget.ImageView;importandroid.widget.TextView;/**

*@author鹭岛猥琐男

*

*/publicclassMyProgressDialogextendsDialog{

privateContextcontext;

privatestaticMyProgressDialogmyProgressDialog=null;

publicMyProgressDialog(Contextcontext)

{

super(context);

this.context=context;

}

publicMyProgressDialog(Contextcontext,inttheme)

{

super(context,theme);

}

publicstaticMyProgressDialogcreateDialog(Contextcontext)

{

myProgressDialog=newMyProgressDialog(context,

R.style.myprogressDialog);

myProgressDialog.setContentView(R.layout.dialog_layout);

myProgressDialog.getWindow().getAttributes().gravity=Gravity.CENTER;

returnmyProgressDialog;

}

/*

*(non-Javadoc)

*

*@seeandroid.app.Dialog#onWindowFocusChanged(boolean)设置动画

*/

@Override

publicvoidonWindowFocusChanged(booleanhasFocus)

{

//TODOAuto-generatedmethodstub

super.onWindowFocusChanged(hasFocus);

ImageViewp_w_picpath_loadingp_w_picpath=(ImageView)myProgressDialog

.findViewById(R.id.p_w_picpath_loadingp_w_picpath);

AnimationDrawableanimation=(AnimationDrawable)p_w_picpath_loadingp_w_picpath

.getBackground();

animation.start();

}

publicMyProgressDialogsetTitle(StringstrTitle)

{

returnmyProgressDialog;

}

/**

*@paramstrMessage

*@return设置progressDialog的消息内容

*/

publicMyProgressDialogsetMessage(StringstrMessage)

{

TextViewtv_loadingmsg=(TextView)myProgressDialog

.findViewById(R.id.tv_loadingmsg);

if(tv_loadingmsg!=null)

{

tv_loadingmsg.setText(strMessage);

}

returnmyProgressDialog;

}}在MainActivity中对MyProgressDialog进行调用,为了模仿网络访问结束后,关闭ProgressDialog的过程,采用了线程的sleep,运行5秒后关闭ProgressDialog,上代码:packagecom.example.myprogressdialog_zzw;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.util.Log;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.Toast;/**

*@author鹭岛猥琐男

*采用线程的的sleep模拟下载结束后关闭progressDialog

*

*/publicclassMainActivityextendsActivity{

MyProgressDialogmyProgressDialog=null;

Handlerhandler=newHandler()

{

publicvoidhandleMessage(Messagemsg)

{

if(msg.what==1)

{

Log.e("接收到消息",""+msg.what);

if(myProgressDialog!=null)

{

myProgressDialog.dismiss();

myProgressDialog=null;

}

Toast.makeText(MainActivity.this,"加载完成!",Toast.LENGTH_SHORT)

.show();

}

};

};

@Override

protectedvoidonCreate(BundlesavedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Buttonbtn_go=(Button)findViewById(R.id.button1);

btn_go.setOnClickListener(newOnClickListener()

{

@Override

publicvoidonClick(Viewv)

{

if(myProgressDialog==null)

{

myProgressDialog=MyProgressDialog

.createDialog(MainActivity.this);

myProgressDialog.setMessage("努力加载中...");

}

myProgressDialog.show();

newThread()

{

@Override

publicvoidrun()

{

Log.e("线程","进入线程!");

try

{

Thread.sleep(5000);

Messagemsg=newMessage();

msg.what=1;

handler.sendMessage(msg);

}

catch(InterruptedExceptione)

{

Log.e("异常","失败!异常");

}

}

}.start();

}

});

}

@Overrid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论