第一种:bitmapDialog的建立
javademo1:
package com.demo.dialog;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
/**
* Create custom Dialog windows for your application Custom dialogs rely on
* custom layouts wich allow you to create and use your own look & feel.
**/
public class BitmapDialog extends Dialog {
public BitmapDialog(Context context, int theme) {
super(context, theme);
}
public BitmapDialog(Context context) {
super(context);
}
/**
* Helper class for creating a custom dialog
*/
public static class Builder {
@SuppressWarnings("unused")
private ViewTreeObserver viewTreeObserver;
private Context context;
private View contentView;
private ImageView img;
private Bitmap bitmap;
public Builder(Context context) {
this.context = context;
}
public Builder setBitmap(Bitmap bit) {
this.bitmap = bit;
return this;
}
public Builder setContentView(View v) {
this.contentView = v;
return this;
}
/**
*
* Create the custom dialog
*/
public BitmapDialog create() {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// instantiate the dialog with the custom Theme
final BitmapDialog dialog = new BitmapDialog(context,
R.style.Dialog);
View layout = inflater.inflate(R.layout.bitmap_dialog_layout, null);
dialog.addContentView(layout, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
if (bitmap != null) {
img = (ImageView) layout
.findViewById(R.id.bitmap_dialog_imageview);
img.setImageBitmap(bitmap);
}
if (contentView != null) {
// if no message set
// add the contentView to the dialog body
((LinearLayout) layout.findViewById(R.id.content))
.removeAllViews();
((LinearLayout) layout.findViewById(R.id.content))
.addView(contentView,
new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
}
dialog.setContentView(layout);
return dialog;
}
}
}
javaDemo2
package com.demo.dialog;
import android.content.Context;
import android.graphics.Bitmap;
/*自定义Dialog方法*/
public class BitmapHelper {
public static BitmapDialog createDialog(Context context, Bitmap bitmap) {
BitmapDialog.Builder dialogBuilder = new BitmapDialog.Builder(context);
dialogBuilder.setBitmap(bitmap);
return dialogBuilder.create();
}
}
javademo1:
package com.demo.dialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
* Create custom Dialog windows for your application Custom dialogs rely on
* custom layouts wich allow you to create and use your own look & feel.
**/
public class CustomDialog extends Dialog {
public CustomDialog(Context context, int theme) {
super(context, theme);
}
public CustomDialog(Context context) {
super(context);
}
/**
* Helper class for creating a custom dialog
*/
public static class Builder {
private Context context;
private String message;
private String positiveButtonText;
private String negativeButtonText;
private View contentView;
private boolean isWaitDialog;
private DialogInterface.OnClickListener
positiveButtonClickListener,
negativeButtonClickListener;
public Builder(Context context) {
this.context = context;
}
/**
*
* Set the Dialog message from String
*
* @param title
*
* @return
*/
public Builder setMessage(String message) {
this.message = message;
return this;
}
public Builder setWiatDialog(boolean isWaitDialog) {
this.isWaitDialog = isWaitDialog;
return this;
}
/**
*
* Set the Dialog message from resource
*
* @param title
*
* @return
*/
public Builder setMessage(int message) {
this.message = (String) context.getText(message);
return this;
}
/**
*
* Set a custom content view for the Dialog.
*
* If a message is set, the contentView is not
*
* added to the Dialog...
*
* @param v
*
* @return
*/
public Builder setContentView(View v) {
this.contentView = v;
return this;
}
/**
*
* Set the positive button resource and it's listener
*
* @param positiveButtonText
*
* @param listener
*
* @return
*/
public Builder setPositiveButton(int positiveButtonText,
DialogInterface.OnClickListener listener) {
this.positiveButtonText = (String) context
.getText(positiveButtonText);
this.positiveButtonClickListener = listener;
return this;
}
/**
*
* Set the positive button text and it's listener
*
* @param positiveButtonText
*
* @param listener
*
* @return
*/
public Builder setPositiveButton(String positiveButtonText,
DialogInterface.OnClickListener listener) {
this.positiveButtonText = positiveButtonText;
this.positiveButtonClickListener = listener;
return this;
}
/**
*
* Set the negative button resource and it's listener
*
* @param negativeButtonText
*
* @param listener
*
* @return
*/
public Builder setNegativeButton(int negativeButtonText,
DialogInterface.OnClickListener listener) {
this.negativeButtonText = (String) context
.getText(negativeButtonText);
this.negativeButtonClickListener = listener;
return this;
}
/**
*
* Set the negative button text and it's listener
*
* @param negativeButtonText
*
* @param listener
*
* @return
*/
public Builder setNegativeButton(String negativeButtonText,
DialogInterface.OnClickListener listener) {
this.negativeButtonText = negativeButtonText;
this.negativeButtonClickListener = listener;
return this;
}
/**
*
* Create the custom dialog
*/
public CustomDialog create() {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// instantiate the dialog with the custom Theme
final CustomDialog dialog = new CustomDialog(context,
R.style.Dialog);
View layout = inflater.inflate(R.layout.custom_dialog_layout, null);
dialog.addContentView(layout, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
// set the confirm button
if (positiveButtonText != null) {
((Button) layout.findViewById(R.id.positiveButton))
.setText(positiveButtonText);
if (positiveButtonClickListener != null) {
((Button) layout.findViewById(R.id.positiveButton))
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
positiveButtonClickListener.onClick(dialog,
DialogInterface.BUTTON_POSITIVE);
}
});
}
} else {
// if no confirm button just set the visibility to GONE
layout.findViewById(R.id.positiveButton).setVisibility(
View.GONE);
}
if (isWaitDialog) {
layout.findViewById(R.id.progressBar1).setVisibility(
View.VISIBLE);
} else {
layout.findViewById(R.id.progressBar1).setVisibility(View.GONE);
}
// set the cancel button
if (negativeButtonText != null) {
((Button) layout.findViewById(R.id.negativeButton))
.setText(negativeButtonText);
if (negativeButtonClickListener != null) {
((Button) layout.findViewById(R.id.negativeButton))
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
negativeButtonClickListener.onClick(dialog,
DialogInterface.BUTTON_NEGATIVE);
}
});
}
} else {
// if no confirm button just set the visibility to GONE
layout.findViewById(R.id.negativeButton).setVisibility(
View.GONE);
}
// set the content message
if (message != null) {
((TextView) layout.findViewById(
R.id.message)).setText(message);
} else if (contentView != null) {
// if no message set
// add the contentView to the dialog body
((LinearLayout) layout.findViewById(R.id.content))
.removeAllViews();
((LinearLayout) layout.findViewById(R.id.content))
.addView(contentView,
new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
}
dialog.setContentView(layout);
return dialog;
}
}
}
package com.demo.dialog;
import android.content.Context;
import android.content.DialogInterface;
/*customdialog*/
public class CustomDialogHelper {
public static CustomDialog createDialog(Context context, String msg) {
CustomDialog.Builder dialogBuilder = new CustomDialog.Builder(context);
dialogBuilder.setWiatDialog(false);
dialogBuilder.setMessage(msg);
return dialogBuilder.create();
}
public static CustomDialog createDialogWait(Context context, String msg) {
CustomDialog.Builder dialogBuilder = new CustomDialog.Builder(context);
dialogBuilder.setWiatDialog(true);
dialogBuilder.setMessage(msg);
return dialogBuilder.create();
}
public static CustomDialog createDialog(Context context, String title,
String msg, String btnName) {
CustomDialog.Builder dialogBuilder = new CustomDialog.Builder(context);
dialogBuilder.setWiatDialog(false);
dialogBuilder.setMessage(msg);
dialogBuilder.setNegativeButton(btnName,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
return dialogBuilder.create();
}
public static CustomDialog createProgressDialog(Context context,
String title, String msg) {
CustomDialog.Builder dialogBuilder = new CustomDialog.Builder(context);
dialogBuilder.setWiatDialog(true);
dialogBuilder.setMessage(msg);
return dialogBuilder.create();
}
public static CustomDialog createDialog1(Context context, String msg,
String btnName) {
CustomDialog.Builder dialogBuilder = new CustomDialog.Builder(context);
dialogBuilder.setWiatDialog(false);
dialogBuilder.setMessage(msg);
dialogBuilder.setNegativeButton(btnName,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
return dialogBuilder.create();
}
}
第三种:
Logdialog的建立:javaDemo1
package com.demo.dialog;
import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
* Create custom Dialog windows for your application Custom dialogs rely on
* custom layouts wich allow you to create and use your own look & feel.
**/
public class LogDialog extends Dialog {
public LogDialog(Context context, int theme) {
super(context, theme);
}
public LogDialog(Context context) {
super(context);
}
/**
* Helper class for creating a custom dialog
*/
public static class Builder {
private Context context;
private String message;
private View contentView;
public Builder(Context context) {
this.context = context;
}
/**
*
* Set the Dialog message from String
*
* @param title
*
* @return
*/
public Builder setMessage(String message) {
this.message = message;
return this;
}
/**
*
* Set the Dialog message from resource
*
* @param title
*
* @return
*/
public Builder setMessage(int message) {
this.message = (String) context.getText(message);
return this;
}
/**
*
* Set a custom content view for the Dialog.
*
* If a message is set, the contentView is not
*
* added to the Dialog...
*
* @param v
*
* @return
*/
public Builder setContentView(View v) {
this.contentView = v;
return this;
}
/**
*
* Create the custom dialog
*/
public LogDialog create() {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// instantiate the dialog with the custom Theme
final LogDialog dialog = new LogDialog(context,
R.style.Dialog);
View layout = inflater.inflate(R.layout.log_dialog_layout, null);
dialog.addContentView(layout, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
// set the content message
if (message != null) {
((TextView) layout.findViewById(
R.id.log_dialog_message)).setText(message);
} else if (contentView != null) {
// if no message set
// add the contentView to the dialog body
((LinearLayout) layout.findViewById(R.id.content))
.removeAllViews();
((LinearLayout) layout.findViewById(R.id.content))
.addView(contentView,
new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
}
dialog.setContentView(layout);
return dialog;
}
}
}
package com.demo.dialog;
import android.content.Context;
public class LogDialogHelper {
public static LogDialog createDialog(Context context, String msg) {
LogDialog.Builder dialogBuilder = new LogDialog.Builder(context);
dialogBuilder.setMessage(msg);
return dialogBuilder.create();
}
}
progressDialog的建立:(很多类是自定义的,还没修改)
Javademo1:
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
/**
* Create custom Dialog windows for your application Custom dialogs rely on
* custom layouts wich allow you to create and use your own look & feel.
**/
public class ProgressDialog extends Dialog {
public ProgressDialog(Context context, int theme) {
super(context, theme);
}
public ProgressDialog(Context context) {
super(context);
}
/**
* Helper class for creating a custom dialog
*/
public static class Builder {
private final int REQUESTFAIL = 0;
private final int MEMBERCARDTHREAD = 20;
private final int BILLTHREAD = 40;
private final int ORDERBASETHREAD = 60;
private final int INVOICETHREAD = 80;
private final int UPLOADFINISH = 100;
private Context context;
private String message;
private View contentView;
private ProgressBar bar;
private Animation animation;
public Builder(Context context) {
this.context = context;
}
public ProgressBar getBar() {
return bar;
}
/**
*
* Set the Dialog message from String
*
* @param title
*
* @return
*/
public Builder setMessage(String message) {
this.message = message;
return this;
}
/**
*
* Set the Dialog message from resource
*
* @param title
*
* @return
*/
public Builder setMessage(int message) {
this.message = (String) context.getText(message);
return this;
}
/**
*
* Set a custom content view for the Dialog.
*
* If a message is set, the contentView is not
*
* added to the Dialog...
*
* @param v
*
* @return
*/
public Builder setContentView(View v) {
this.contentView = v;
return this;
}
public ProgressDialog create() {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final ProgressDialog dialog = new ProgressDialog(context,
R.style.Dialog);
dialog.setCanceledOnTouchOutside(false);
View layout = inflater.inflate(R.layout.progressdialog, null);
dialog.addContentView(layout, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
dialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
FrameMainActivity.proBool = true;
}
});
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MEMBERCARDTHREAD:
if (bar == null)
FrameMainActivity.proBool = true;
bar.incrementProgressBy(20);
break;
case BILLTHREAD:
bar.incrementProgressBy(20);
break;
case ORDERBASETHREAD:
bar.incrementProgressBy(10);
break;
case INVOICETHREAD:
bar.incrementProgressBy(30);
break;
case UPLOADFINISH:
bar.incrementProgressBy(20);
if (dialog.isShowing())
dialog.dismiss();
FrameMainActivity.proBool = true;
break;
case REQUESTFAIL:
if (dialog.isShowing()) {
Toast.makeText(context, "数据更新失败,请检查网络!",
Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
FrameMainActivity.proBool = true;
break;
}
super.handleMessage(msg);
}
};
if (message != null) {
((TextView) layout.findViewById(
R.id.progressdialog_txt)).setText(message);
animation = AnimationUtils.loadAnimation(context,
R.anim.progress_alpha);
bar = ((ProgressBar) layout
.findViewById(R.id.progressdialog_pro));
bar.setAnimation(animation);
dataThread(handler);
}
if (contentView != null) {
((LinearLayout) layout.findViewById(R.id.content))
.removeAllViews();
((LinearLayout) layout.findViewById(R.id.content))
.addView(contentView,
new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
}
dialog.setContentView(layout);
return dialog;
}
}
public static void dataThread(final Handler handler) {
Runnable runnable = new Runnable() {
@Override
public void run() {
Log.d("info", "dataThread启动");
Datasync datasync = null;
SharepreferenceData sharepreferenceData = SharepreferenceData
.getInstance(GabelApplication.getInstance());
int i = 0;
while (!FrameMainActivity.proBool) {
try {
Thread.sleep(1000);
i++;
if (i == 15) {
handler.sendEmptyMessage(0);
break;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
if (!sharepreferenceData.getServiceStat()) {
continue;
}
if (!FrameMainActivity.proBool) {
datasync = new MemberCardImpl();
datasync.handlerData();
handler.sendEmptyMessage(20);
}
if (!FrameMainActivity.proBool) {
datasync = new BillPayImpl();
datasync.handlerData();
handler.sendEmptyMessage(40);
}
if (!FrameMainActivity.proBool) {
datasync = new OrderBasicInfoImpl();
datasync.handlerData();
handler.sendEmptyMessage(80);
}
if (!FrameMainActivity.proBool) {
datasync = new BillInvoiceLogImpl();
datasync.handlerData();
handler.sendEmptyMessage(100);
}
break;
}
};
};
new Thread(runnable).start();
}
}
javaDemo2:
package com.demo.dialog;
import android.content.Context;
public class ProgressDialogHelper {
public static ProgressDialog createDialog(Context context, String msg) {
ProgressDialog.Builder dialogBuilder = new ProgressDialog.Builder(
context);
// dialogBuilder.setHandler(handler);
dialogBuilder.setMessage(msg);
return dialogBuilder.create();
}
}
Javademo1:
package com.demo.dialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
/**
* Create custom Dialog windows for your application Custom dialogs rely on
* custom layouts wich allow you to create and use your own look & feel.
**/
public class SetURLDialog extends Dialog {
public SetURLDialog(Context context, int theme) {
super(context, theme);
}
public SetURLDialog(Context context) {
super(context);
}
/**
* Helper class for creating a custom dialog
*/
public static class Builder {
private EditText editText;
private Context context;
private String message;
private String positiveButtonText;
private String negativeButtonText;
private View contentView;
private DialogInterface.OnClickListener
positiveButtonClickListener,
negativeButtonClickListener;
public Builder(Context context) {
this.context = context;
}
public Builder setMessage(String message) {
this.message = message;
return this;
}
public Builder setMessage(int message) {
this.message = (String) context.getText(message);
return this;
}
public Builder setContentView(View v) {
this.contentView = v;
return this;
}
public Builder setPositiveButton(int positiveButtonText,
DialogInterface.OnClickListener listener) {
this.positiveButtonText = (String) context
.getText(positiveButtonText);
this.positiveButtonClickListener = listener;
return this;
}
public Builder setPositiveButton(String positiveButtonText,
DialogInterface.OnClickListener listener) {
this.positiveButtonText = positiveButtonText;
this.positiveButtonClickListener = listener;
return this;
}
public Builder setNegativeButton(int negativeButtonText,
DialogInterface.OnClickListener listener) {
this.negativeButtonText = (String) context
.getText(negativeButtonText);
this.negativeButtonClickListener = listener;
return this;
}
public Builder setNegativeButton(String negativeButtonText,
DialogInterface.OnClickListener listener) {
this.negativeButtonText = negativeButtonText;
this.negativeButtonClickListener = listener;
return this;
}
public String getEditText() {
return editText.getText() + "";
}
/**
*
* Create the custom dialog
*/
public SetURLDialog create() {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// instantiate the dialog with the custom Theme
final SetURLDialog dialog = new SetURLDialog(context,
R.style.Dialog);
View layout = inflater.inflate(
R.layout.set_serviceurl_dialog_layout, null);
dialog.addContentView(layout, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
// set the confirm button
if (positiveButtonText != null) {
((Button) layout
.findViewById(R.id.set_serviceurl_positiveButton))
.setText(positiveButtonText);
if (positiveButtonClickListener != null) {
((Button) layout
.findViewById(R.id.set_serviceurl_positiveButton))
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
positiveButtonClickListener.onClick(dialog,
DialogInterface.BUTTON_POSITIVE);
}
});
}
} else {
// if no confirm button just set the visibility to GONE
layout.findViewById(R.id.set_serviceurl_positiveButton)
.setVisibility(View.GONE);
}
// set the cancel button
if (negativeButtonText != null) {
((Button) layout
.findViewById(R.id.set_serviceurl_negativeButton))
.setText(negativeButtonText);
if (negativeButtonClickListener != null) {
((Button) layout
.findViewById(R.id.set_serviceurl_negativeButton))
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
negativeButtonClickListener.onClick(dialog,
DialogInterface.BUTTON_NEGATIVE);
}
});
}
} else {
// if no confirm button just set the visibility to GONE
layout.findViewById(R.id.set_serviceurl_negativeButton)
.setVisibility(View.GONE);
}
// set the content message
if (message != null) {
editText = ((EditText) layout
.findViewById(R.id.set_serviceurl_edit));
editText.setText(message);
} else if (contentView != null) {
// if no message set
// add the contentView to the dialog body
((LinearLayout) layout.findViewById(R.id.content))
.removeAllViews();
((LinearLayout) layout.findViewById(R.id.content))
.addView(contentView,
new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
}
dialog.setContentView(layout);
return dialog;
}
}
}
package com.demo.dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.Toast;
/*自定义Dialog方法*/
public class SetURLDialogHelper {
public static SetURLDialog createDialog(final Context context, String msg) {
final SetURLDialog.Builder dialogBuilder = new SetURLDialog.Builder(
context);
dialogBuilder.setMessage(msg);
dialogBuilder.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "取消保存", Toast.LENGTH_SHORT)
.show();
dialog.dismiss();
}
});
dialogBuilder.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SharepreferenceData.getInstance(context).setServiceURL(
dialogBuilder.getEditText());
Toast.makeText(context, "保存成功", Toast.LENGTH_SHORT)
.show();
dialog.dismiss();
}
});
return dialogBuilder.create();
}
}