android 自定义loading,android_自定义Loading框
代碼
public?class?CustomLoadingDialog?extends?Dialog?{
@ViewInject(R.id.custom_loading_dialog_indicator)
private?ImageView?indicatorIv;
@ViewInject(R.id.custom_loading_dialog_message)
private?TextView?messageTv;
private?CustomLoadingDialog(Context?context,?int?theme)?{
super(context,?theme);
}
public?static?CustomLoadingDialog?createLoading(Context?context)?{
CustomLoadingDialog?dialog?=?new?CustomLoadingDialog(context,?R.style.CustomDialog);
View?content?=?LayoutInflater.from(context).inflate(
R.layout.custom_loading_dialog,?null);
ViewUtils.inject(dialog,?content);
dialog.addContentView(content,?new?ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
return?dialog;
}
@Override
public?void?onWindowFocusChanged(boolean?hasFocus)?{
if?(hasFocus)?{
indicatorIv.startAnimation(AnimationUtils.loadAnimation(
getContext(),?R.anim.custom_loading_dialog));
}
}
public?void?setMessage(String?message)?{
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"/>
使用
public?void?showLoadingDialog()?{
if?(loadingDialog?==?null)?{
loadingDialog?=?CustomLoadingDialog.createLoading(this);
}
loadingDialog.setMessage(getResources().getString(R.string.loading_message_default));
loadingDialog.show();
}
public?void?showLoadingDialog(String?message)?{
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();
}
public?void?hideLoadingDialog()?{
if?(loadingDialog?!=?null?&&?loadingDialog.isShowing())?{
loadingDialog.dismiss();
}
}
public?void?setLoadingDialogCancel(boolean?canCancel)?{
loadingDialog.setCancelable(canCancel);
}
總結
以上是生活随笔為你收集整理的android 自定义loading,android_自定义Loading框的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [开源].NET高性能框架Chloe.O
- 下一篇: 社保新政策2022年最新,一共以下有4点