代码
publicclassCustomLoadingDialogextendsDialog{
@ViewInject(R.id.custom_loading_dialog_indicator)
privateImageViewindicatorIv;
@ViewInject(R.id.custom_loading_dialog_message)
privateTextViewmessageTv;
privateCustomLoadingDialog(Contextcontext,inttheme){
super(context,theme);
}
publicstaticCustomLoadingDialogcreateLoading(Contextcontext){
CustomLoadingDialogdialog=newCustomLoadingDialog(context,R.style.CustomDialog);
Viewcontent=LayoutInflater.from(context).inflate(
R.layout.custom_loading_dialog,null);
ViewUtils.inject(dialog,content);
dialog.addContentView(content,newViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
returndialog;
}
@Override
publicvoidonWindowFocusChanged(booleanhasFocus){
if(hasFocus){
indicatorIv.startAnimation(AnimationUtils.loadAnimation(
getContext(),R.anim.custom_loading_dialog));
}
}
publicvoidsetMessage(Stringmessage){
if(!TextUtils.isEmpty(message)){
messageTv.setVisibility(View.VISIBLE);
messageTv.setText(message);
}else{
messageTv.setVisibility(View.GONE);
}
}
}
资源文件
@null
@android:color/transparent
true
true
true
true
style="@style/CustomDialogBackground"
android:minWidth="240dp"
android:padding="@dimen/Xlarge"
>
android:id="@+id/custom_loading_dialog_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/loading_indicator"/>
android:id="@+id/custom_loading_dialog_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_marginTop="@dimen/medium"
android:singleLine="true"
android:maxWidth="200dp"
android:textColor="@android:color/black"
android:textSize="@dimen/text_noraml"/>
android:shareInterpolator="false">
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="360"
android:duration="1500"
android:startOffset="-1"
android:repeatMode="restart"
android:repeatCount="-1"/>
使用
publicvoidshowLoadingDialog(){
if(loadingDialog==null){
loadingDialog=CustomLoadingDialog.createLoading(this);
}
loadingDialog.setMessage(getResources().getString(R.string.loading_message_default));
loadingDialog.show();
}
publicvoidshowLoadingDialog(Stringmessage){
if(loadingDialog==null){
loadingDialog=CustomLoadingDialog.createLoading(this);
}
if(!TextUtils.isEmpty(message)){
loadingDialog.setMessage(message);
}else{
loadingDialog.setMessage(getResources().getString(R.string.loading_message_default));
}
loadingDialog.show();
}
publicvoidhideLoadingDialog(){
if(loadingDialog!=null&&loadingDialog.isShowing()){
loadingDialog.dismiss();
}
}
publicvoidsetLoadingDialogCancel(booleancanCancel){
loadingDialog.setCancelable(canCancel);
}