仿IOS弹出框及提示框(含Demo)
        【摘要】 
                    做项目经常需要用到各种各样的提示框,今天先把通用的提示框和仿IOS的弹出框写到demo里面后面会持续更新其他的。 
  
 
1.提示框效果 
 
2.仿IOS弹出框效果 
 
Activity代码 
 
package com.example.iosdialog;  import com.example.iosdialog....
    
    
    
    做项目经常需要用到各种各样的提示框,今天先把通用的提示框和仿IOS的弹出框写到demo里面后面会持续更新其他的。
1.提示框效果

2.仿IOS弹出框效果

Activity代码
  
   - 
    
     
    
    
     
      package com.example.iosdialog;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import com.example.iosdialog.IosDialog.MyPopClickListener;
     
    
 
   - 
    
     
    
    
     
      import com.example.iosdialog.R;
     
    
 
   - 
    
     
    
    
     
      import com.example.iosdialog.TipsDialog.OnMySimpleDialogListener;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import android.support.v7.app.ActionBarActivity;
     
    
 
   - 
    
     
    
    
     
      import android.os.Bundle;
     
    
 
   - 
    
     
    
    
     
      import android.view.View;
     
    
 
   - 
    
     
    
    
     
      import android.view.View.OnClickListener;
     
    
 
   - 
    
     
    
    
     
      import android.widget.Toast;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      public class MainActivity extends ActionBarActivity {
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
         @Override
     
    
 
   - 
    
     
    
    
         protected void onCreate(Bundle savedInstanceState) {
     
    
 
   - 
    
     
    
    
             super.onCreate(savedInstanceState);
     
    
 
   - 
    
     
    
    
     
              setContentView(R.layout.activity_main);
     
    
 
   - 
    
     
    
    
             
     
    
 
   - 
    
     
    
    
     
              findViewById(R.id.tips_dialog_btn).setOnClickListener(new OnClickListener() {
     
    
 
   - 
    
     
    
    
     			
     
    
 
   - 
    
     
    
    
     			@Override
     
    
 
   - 
    
     
    
    
     			public void onClick(View v) {
     
    
 
   - 
    
     
    
    
     
      				showTipsDialog();
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     
      		});
     
    
 
   - 
    
     
    
    
     
              findViewById(R.id.ios_dialog_btn).setOnClickListener(new OnClickListener() {
     
    
 
   - 
    
     
    
    
     			
     
    
 
   - 
    
     
    
    
         			@Override
     
    
 
   - 
    
     
    
    
         			public void onClick(View v) {
     
    
 
   - 
    
     
    
    
     
          				showIosDialog();
     
    
 
   - 
    
     
    
    
     
          			}
     
    
 
   - 
    
     
    
    
     
          		});
     
    
 
   - 
    
     
    
    
             
     
    
 
   - 
    
     
    
    
     
          }
     
    
 
   - 
    
     
    
    
     	private void showTipsDialog() {
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     		new TipsDialog(MainActivity.this, "温馨提示", "缺少系统数据库,是否下载?", "稍后下载", "下载", false).SetOnMySimpleDialogListener(new OnMySimpleDialogListener() {
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     			@Override
     
    
 
   - 
    
     
    
    
     			public void onMySure() {
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     			@Override
     
    
 
   - 
    
     
    
    
     			public void onMyCancle() {
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     
      		});
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	private void showIosDialog() {
     
    
 
   - 
    
     
    
    
     		new IosDialog(MainActivity.this, "取消",
     
    
 
   - 
    
     
    
    
     				new String[] { "孙悟空", "猪八戒", "沙僧" }, true)
     
    
 
   - 
    
     
    
    
     
      				.setOnMyPopClickListener(new MyPopClickListener() {
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     					@Override
     
    
 
   - 
    
     
    
    
     					public void myListItemClick(int itemPosition,String itemContent) {
     
    
 
   - 
    
     
    
    
     						if (itemPosition == 0) {
     
    
 
   - 
    
     
    
    
     
      							Toast.makeText(MainActivity.this, "点击了孙悟空", Toast.LENGTH_SHORT).show();
     
    
 
   - 
    
     
    
    
     
      						} else if (itemPosition == 1) {
     
    
 
   - 
    
     
    
    
     
      							Toast.makeText(MainActivity.this, "点击了猪八戒", Toast.LENGTH_SHORT).show();
     
    
 
   - 
    
     
    
    
     
      						} else if (itemPosition == 2) {
     
    
 
   - 
    
     
    
    
     
      							Toast.makeText(MainActivity.this, "点击了沙僧", Toast.LENGTH_SHORT).show();
     
    
 
   - 
    
     
    
    
     
      						} 
     
    
 
   - 
    
     
    
    
     
      					}
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     					@Override
     
    
 
   - 
    
     
    
    
     					public void myCancleClick(String cancleContent) {
     
    
 
   - 
    
     
    
    
     
      					}
     
    
 
   - 
    
     
    
    
     
      				});
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     
      }
     
    
 
  
 
IOS弹框
  
   - 
    
     
    
    
     
      package com.example.iosdialog;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import com.example.iosdialog.R;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import android.annotation.SuppressLint;
     
    
 
   - 
    
     
    
    
     
      import android.app.Activity;
     
    
 
   - 
    
     
    
    
     
      import android.content.Context;
     
    
 
   - 
    
     
    
    
     
      import android.graphics.drawable.BitmapDrawable;
     
    
 
   - 
    
     
    
    
     
      import android.view.Gravity;
     
    
 
   - 
    
     
    
    
     
      import android.view.LayoutInflater;
     
    
 
   - 
    
     
    
    
     
      import android.view.View;
     
    
 
   - 
    
     
    
    
     
      import android.view.View.OnClickListener;
     
    
 
   - 
    
     
    
    
     
      import android.view.ViewGroup;
     
    
 
   - 
    
     
    
    
     
      import android.view.WindowManager;
     
    
 
   - 
    
     
    
    
     
      import android.widget.BaseAdapter;
     
    
 
   - 
    
     
    
    
     
      import android.widget.ListView;
     
    
 
   - 
    
     
    
    
     
      import android.widget.PopupWindow;
     
    
 
   - 
    
     
    
    
     
      import android.widget.PopupWindow.OnDismissListener;
     
    
 
   - 
    
     
    
    
     
      import android.widget.TextView;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      public class IosDialog {
     
    
 
   - 
    
     
    
    
     	private Context mContext;
     
    
 
   - 
    
     
    
    
     	private String mCancleContent;
     
    
 
   - 
    
     
    
    
     	private String[] mItems;
     
    
 
   - 
    
     
    
    
     	private Boolean mCancleAbleOutSide = true;
     
    
 
   - 
    
     
    
    
     	private PopupWindow mPopupWindow;
     
    
 
   - 
    
     
    
    
     	private View mShowAtView = null ;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     	/**
     
    
 
   - 
    
     
    
    
     
       * 
     
    
 
   - 
    
     
    
    
     
       * @param mContext 上下文
     
    
 
   - 
    
     
    
    
     
       * @param mCancleContent 取消按钮文字
     
    
 
   - 
    
     
    
    
     
       * @param mItems 文字菜单数组
     
    
 
   - 
    
     
    
    
     
       * @param mCancleAbleOutSide 是否让点击外部取消
     
    
 
   - 
    
     
    
    
     
       */
     
    
 
   - 
    
     
    
    
     	public IosDialog(Context mContext,String mCancleContent, String[] mItems, Boolean mCancleAbleOutSide) {
     
    
 
   - 
    
     
    
    
     		super();
     
    
 
   - 
    
     
    
    
     		this.mContext = mContext;
     
    
 
   - 
    
     
    
    
     		this.mCancleContent = mCancleContent;
     
    
 
   - 
    
     
    
    
     		this.mItems = mItems;
     
    
 
   - 
    
     
    
    
     		this.mCancleAbleOutSide = mCancleAbleOutSide;
     
    
 
   - 
    
     
    
    
     
      		showMyBottomPop();
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	/**
     
    
 
   - 
    
     
    
    
     
       * 此种情况适用于在弹框上弹出pop
     
    
 
   - 
    
     
    
    
     
       * @param mShowAtView 弹框的布局
     
    
 
   - 
    
     
    
    
     
       * @param mContext 上下文
     
    
 
   - 
    
     
    
    
     
       * @param mCancleContent 取消按钮文字
     
    
 
   - 
    
     
    
    
     
       * @param mItems 文字菜单数组
     
    
 
   - 
    
     
    
    
     
       * @param mCancleAbleOutSide 是否让点击外部取消
     
    
 
   - 
    
     
    
    
     
       */
     
    
 
   - 
    
     
    
    
     	public IosDialog(View mShowAtView ,Context mContext,String mCancleContent, String[] mItems, Boolean mCancleAbleOutSide) {
     
    
 
   - 
    
     
    
    
     		super();
     
    
 
   - 
    
     
    
    
     		this.mContext = mContext;
     
    
 
   - 
    
     
    
    
     		this.mCancleContent = mCancleContent;
     
    
 
   - 
    
     
    
    
     		this.mItems = mItems;
     
    
 
   - 
    
     
    
    
     		this.mCancleAbleOutSide = mCancleAbleOutSide;
     
    
 
   - 
    
     
    
    
     		this.mShowAtView = mShowAtView;
     
    
 
   - 
    
     
    
    
     
      		showMyBottomPop();
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     	@SuppressWarnings("deprecation")
     
    
 
   - 
    
     
    
    
     	@SuppressLint("InflateParams")
     
    
 
   - 
    
     
    
    
     	public void showMyBottomPop() {
     
    
 
   - 
    
     
    
    
     		View view = LayoutInflater.from(mContext).inflate(R.layout.layout_ios_pop, null);
     
    
 
   - 
    
     
    
    
     		ListView list = (ListView) view.findViewById(R.id.pop_list);
     
    
 
   - 
    
     
    
    
     		TextView cancle = (TextView) view.findViewById(R.id.cancle_tv);
     
    
 
   - 
    
     
    
    
     
      		cancle.setText(mCancleContent);
     
    
 
   - 
    
     
    
    
     
      		list.setAdapter(new MyItemAdapter());
     
    
 
   - 
    
     
    
    
     
      		mPopupWindow = new PopupWindow(view, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
     
    
 
   - 
    
     
    
    
     
      		mPopupWindow.setFocusable(true);
     
    
 
   - 
    
     
    
    
     		// 点击外面popupWindow消失
     
    
 
   - 
    
     
    
    
     
      		mPopupWindow.setOutsideTouchable(mCancleAbleOutSide);
     
    
 
   - 
    
     
    
    
     		if (mCancleAbleOutSide) {
     
    
 
   - 
    
     
    
    
     
      			mPopupWindow.setBackgroundDrawable(new BitmapDrawable());  
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     		// 设置popWindow的显示和消失动画
     
    
 
   - 
    
     
    
    
     
      		mPopupWindow.setAnimationStyle(R.style.mypopwindow_anim_style);
     
    
 
   - 
    
     
    
    
     		// 在底部显示
     
    
 
   - 
    
     
    
    
     		if (mShowAtView!=null) {
     
    
 
   - 
    
     
    
    
     
      			mPopupWindow.showAtLocation(mShowAtView, Gravity.BOTTOM, 0, 0);
     
    
 
   - 
    
     
    
    
     
      		}else {
     
    
 
   - 
    
     
    
    
     
      			mPopupWindow.showAtLocation(view, Gravity.BOTTOM, 0, 0);
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     		
     
    
 
   - 
    
     
    
    
     
      		backgroundAlpha(0.5f);
     
    
 
   - 
    
     
    
    
     
      		cancle.setOnClickListener(new OnClickListener() {
     
    
 
   - 
    
     
    
    
     			
     
    
 
   - 
    
     
    
    
     			@Override
     
    
 
   - 
    
     
    
    
     			public void onClick(View v) {
     
    
 
   - 
    
     
    
    
     
      				disMissPop();
     
    
 
   - 
    
     
    
    
     				if (myPopClickListener!=null) {
     
    
 
   - 
    
     
    
    
     
      					myPopClickListener.myCancleClick(mCancleContent);
     
    
 
   - 
    
     
    
    
     
      				}
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     
      		});
     
    
 
   - 
    
     
    
    
     
      		mPopupWindow.setOnDismissListener(new OnDismissListener() {
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     			@Override
     
    
 
   - 
    
     
    
    
     			public void onDismiss() {
     
    
 
   - 
    
     
    
    
     
      				backgroundAlpha(1f);
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     
      		});
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	class MyItemAdapter extends BaseAdapter{
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     		@Override
     
    
 
   - 
    
     
    
    
     		public int getCount() {
     
    
 
   - 
    
     
    
    
     			int conut = 0;
     
    
 
   - 
    
     
    
    
     			if (mItems!=null && mItems.length>0) {
     
    
 
   - 
    
     
    
    
     
      				conut = mItems.length;
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     			return conut;
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     		@Override
     
    
 
   - 
    
     
    
    
     		public Object getItem(int position) {
     
    
 
   - 
    
     
    
    
     			String item = "暂无内容";
     
    
 
   - 
    
     
    
    
     			if (mItems!=null && mItems.length>0) {
     
    
 
   - 
    
     
    
    
     
      				item = mItems[position];
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     			return item;
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     		@Override
     
    
 
   - 
    
     
    
    
     		public long getItemId(int position) {
     
    
 
   - 
    
     
    
    
     			return position;
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     		@Override
     
    
 
   - 
    
     
    
    
     		public View getView(final int position, View convertView, ViewGroup parent) {
     
    
 
   - 
    
     
    
    
     
      			ViewHolder holder;
     
    
 
   - 
    
     
    
    
     			if (convertView == null) {
     
    
 
   - 
    
     
    
    
     
      				holder= new ViewHolder();
     
    
 
   - 
    
     
    
    
     
      				convertView = LayoutInflater.from(mContext).inflate(R.layout.layout_pop_list_item, parent , false);
     
    
 
   - 
    
     
    
    
     
      				holder.item_tv = (TextView) convertView.findViewById(R.id.item_tv);
     
    
 
   - 
    
     
    
    
     
      				convertView.setTag(holder);
     
    
 
   - 
    
     
    
    
     
      			}else {
     
    
 
   - 
    
     
    
    
     
      				holder = (ViewHolder) convertView.getTag();
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     
      			holder.item_tv.setText(getItem(position).toString());
     
    
 
   - 
    
     
    
    
     			if (getCount()==1) {
     
    
 
   - 
    
     
    
    
     
      				convertView.setBackgroundResource(R.drawable.pop_cancle);
     
    
 
   - 
    
     
    
    
     
      			}else {
     
    
 
   - 
    
     
    
    
     				if (position == 0) {
     
    
 
   - 
    
     
    
    
     
      					convertView.setBackgroundResource(R.drawable.pop_item_first_bg);
     
    
 
   - 
    
     
    
    
     
      				}else if (position == (mItems.length - 1)) {
     
    
 
   - 
    
     
    
    
     
      					convertView.setBackgroundResource(R.drawable.pop_item_last_bg);
     
    
 
   - 
    
     
    
    
     
      				}else {
     
    
 
   - 
    
     
    
    
     
      					convertView.setBackgroundResource(R.drawable.pop_item_middle_bg);
     
    
 
   - 
    
     
    
    
     
      				}
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     			
     
    
 
   - 
    
     
    
    
     
      			convertView.setOnClickListener(new OnClickListener() {
     
    
 
   - 
    
     
    
    
     				
     
    
 
   - 
    
     
    
    
     				@Override
     
    
 
   - 
    
     
    
    
     				public void onClick(View v) {
     
    
 
   - 
    
     
    
    
     
      					disMissPop();
     
    
 
   - 
    
     
    
    
     					if (myPopClickListener!=null) {
     
    
 
   - 
    
     
    
    
     
      						myPopClickListener.myListItemClick(position, getItem(position).toString());
     
    
 
   - 
    
     
    
    
     
      					}
     
    
 
   - 
    
     
    
    
     
      				}
     
    
 
   - 
    
     
    
    
     
      			});
     
    
 
   - 
    
     
    
    
     			
     
    
 
   - 
    
     
    
    
     			return convertView;
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     		
     
    
 
   - 
    
     
    
    
     		 class ViewHolder {
     
    
 
   - 
    
     
    
    
     
      			TextView item_tv;
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     		
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	private MyPopClickListener myPopClickListener;
     
    
 
   - 
    
     
    
    
     	public void setOnMyPopClickListener(MyPopClickListener myPopClickListener){
     
    
 
   - 
    
     
    
    
     		this.myPopClickListener = myPopClickListener;
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	public interface MyPopClickListener{
     
    
 
   - 
    
     
    
    
     		public void myListItemClick(int itemPosition, String itemContent);
     
    
 
   - 
    
     
    
    
     		public void myCancleClick(String cancleContent);
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	private void disMissPop(){
     
    
 
   - 
    
     
    
    
     		if (mPopupWindow!=null && mPopupWindow.isShowing()) {
     
    
 
   - 
    
     
    
    
     
      			mPopupWindow.dismiss();
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	/**
     
    
 
   - 
    
     
    
    
     
       * 设置添加屏幕的背景透明度
     
    
 
   - 
    
     
    
    
     
       * 
     
    
 
   - 
    
     
    
    
     
       * @param bgAlpha
     
    
 
   - 
    
     
    
    
     
       */
     
    
 
   - 
    
     
    
    
     	public void backgroundAlpha(float bgAlpha) {
     
    
 
   - 
    
     
    
    
     
      		WindowManager.LayoutParams lp = ((Activity) mContext).getWindow().getAttributes();
     
    
 
   - 
    
     
    
    
     
      		lp.alpha = bgAlpha; // 0.0-1.0
     
    
 
   - 
    
     
    
    
     
      		((Activity) mContext).getWindow().setAttributes(lp);
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     
      }
     
    
 
  
 
 通用提示框代码
  
   - 
    
     
    
    
     
      package com.example.iosdialog;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import android.app.AlertDialog;
     
    
 
   - 
    
     
    
    
     
      import android.content.Context;
     
    
 
   - 
    
     
    
    
     
      import android.text.util.Linkify;
     
    
 
   - 
    
     
    
    
     
      import android.util.DisplayMetrics;
     
    
 
   - 
    
     
    
    
     
      import android.view.LayoutInflater;
     
    
 
   - 
    
     
    
    
     
      import android.view.View;
     
    
 
   - 
    
     
    
    
     
      import android.view.View.OnClickListener;
     
    
 
   - 
    
     
    
    
     
      import android.view.WindowManager;
     
    
 
   - 
    
     
    
    
     
      import android.view.WindowManager.LayoutParams;
     
    
 
   - 
    
     
    
    
     
      import android.widget.Button;
     
    
 
   - 
    
     
    
    
     
      import android.widget.TextView;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      public class TipsDialog implements OnClickListener {
     
    
 
   - 
    
     
    
    
     	private AlertDialog mDialog;
     
    
 
   - 
    
     
    
    
     	private Context mContext;
     
    
 
   - 
    
     
    
    
     	public TextView mTitleTv , mContentTv;
     
    
 
   - 
    
     
    
    
     	private Button mCancleBtn , mSureBtn;
     
    
 
   - 
    
     
    
    
     	private String mTextTitle,mTextContent, mTextCancle, mTextSure;
     
    
 
   - 
    
     
    
    
     	private boolean mCanceledOnTouchOutside = true;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     	/**
     
    
 
   - 
    
     
    
    
     
       * @param context 上下文
     
    
 
   - 
    
     
    
    
     
       * @param textTitle 标题
     
    
 
   - 
    
     
    
    
     
       * @param textContent 内容
     
    
 
   - 
    
     
    
    
     
       * @param textCancle 取消
     
    
 
   - 
    
     
    
    
     
       * @param textSure 确定
     
    
 
   - 
    
     
    
    
     
       * @param canceledOnTouchOutside 能否点击外部消失弹框
     
    
 
   - 
    
     
    
    
     
       */
     
    
 
   - 
    
     
    
    
     	public TipsDialog(Context context , String textTitle,String textContent, String textCancle, String textSure , boolean canceledOnTouchOutside) {
     
    
 
   - 
    
     
    
    
     		this.mContext = context;
     
    
 
   - 
    
     
    
    
     		this.mTextTitle = textTitle;
     
    
 
   - 
    
     
    
    
     		this.mTextContent = textContent;
     
    
 
   - 
    
     
    
    
     		this.mTextCancle = textCancle;
     
    
 
   - 
    
     
    
    
     		this.mTextSure = textSure;
     
    
 
   - 
    
     
    
    
     		this.mCanceledOnTouchOutside = canceledOnTouchOutside;
     
    
 
   - 
    
     
    
    
     
      		createDialog();
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     	private void createDialog() {
     
    
 
   - 
    
     
    
    
     
      		AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
     
    
 
   - 
    
     
    
    
     		View view = LayoutInflater.from(mContext).inflate(R.layout.layout_simple_dialog, null);
     
    
 
   - 
    
     
    
    
     
      		mTitleTv = (TextView) view.findViewById(R.id.dialog_tv_title);
     
    
 
   - 
    
     
    
    
     
      		mContentTv = (TextView) view.findViewById(R.id.dialog_tv_content);
     
    
 
   - 
    
     
    
    
     
      		mCancleBtn = (Button) view.findViewById(R.id.dialog_btn_cancle);
     
    
 
   - 
    
     
    
    
     
      		mSureBtn = (Button) view.findViewById(R.id.dialog_btn_sure);
     
    
 
   - 
    
     
    
    
     
      		mContentTv.setAutoLinkMask(Linkify.ALL);
     
    
 
   - 
    
     
    
    
     
      		mCancleBtn.setOnClickListener(this);
     
    
 
   - 
    
     
    
    
     
      		mSureBtn.setOnClickListener(this);
     
    
 
   - 
    
     
    
    
     
      		builder.setView(view);
     
    
 
   - 
    
     
    
    
     
      		mDialog = builder.create();
     
    
 
   - 
    
     
    
    
     
      		mDialog.setCanceledOnTouchOutside(mCanceledOnTouchOutside);
     
    
 
   - 
    
     
    
    
     
      		showMySimpleDialog();
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	public void showMySimpleDialog(){
     
    
 
   - 
    
     
    
    
     		if(!mDialog.isShowing()){
     
    
 
   - 
    
     
    
    
     
      			mTitleTv.setText(mTextTitle);
     
    
 
   - 
    
     
    
    
     
      			mContentTv.setText(mTextContent);
     
    
 
   - 
    
     
    
    
     
      			mCancleBtn.setText(mTextCancle);
     
    
 
   - 
    
     
    
    
     
      			mSureBtn.setText(mTextSure);
     
    
 
   - 
    
     
    
    
     
      			mDialog.show();
     
    
 
   - 
    
     
    
    
     
      			WindowManager.LayoutParams layoutParams = mDialog.getWindow().getAttributes();
     
    
 
   - 
    
     
    
    
     			DisplayMetrics dm = new DisplayMetrics();   
     
    
 
   - 
    
     
    
    
     
      			dm = mContext.getResources().getDisplayMetrics(); 
     
    
 
   - 
    
     
    
    
     			int screenWidth = dm.widthPixels;  
     
    
 
   - 
    
     
    
    
     
      			layoutParams.width = (int) (screenWidth * 0.8);
     
    
 
   - 
    
     
    
    
     
      			layoutParams.height = LayoutParams.WRAP_CONTENT;
     
    
 
   - 
    
     
    
    
     
      			mDialog.getWindow().setAttributes(layoutParams);
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	public void disMissMySimpleDialog(){
     
    
 
   - 
    
     
    
    
     		if(mDialog !=null && mDialog.isShowing()){
     
    
 
   - 
    
     
    
    
     
      			mDialog.dismiss();
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	public void setCancleBtnVisibility(boolean visibile){
     
    
 
   - 
    
     
    
    
     		if (visibile) {
     
    
 
   - 
    
     
    
    
     
      			mCancleBtn.setVisibility(View.VISIBLE);
     
    
 
   - 
    
     
    
    
     
      		}else {
     
    
 
   - 
    
     
    
    
     
      			mCancleBtn.setVisibility(View.GONE);
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	public void setSureBtnVisibility(boolean visibile){
     
    
 
   - 
    
     
    
    
     		if (visibile) {
     
    
 
   - 
    
     
    
    
     
      			mSureBtn.setVisibility(View.VISIBLE);
     
    
 
   - 
    
     
    
    
     
      		}else {
     
    
 
   - 
    
     
    
    
     
      			mSureBtn.setVisibility(View.GONE);
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	//确定取消监听
     
    
 
   - 
    
     
    
    
     	private OnMySimpleDialogListener mSimpleDialogistener;
     
    
 
   - 
    
     
    
    
     	public void SetOnMySimpleDialogListener(OnMySimpleDialogListener listener){
     
    
 
   - 
    
     
    
    
     		this.mSimpleDialogistener = listener;
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	public interface OnMySimpleDialogListener{
     
    
 
   - 
    
     
    
    
     		public void onMyCancle();
     
    
 
   - 
    
     
    
    
     		public void onMySure();
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     	@Override
     
    
 
   - 
    
     
    
    
     	public void onClick(View v) {
     
    
 
   - 
    
     
    
    
     		if (v.getId() == R.id.dialog_btn_cancle) {
     
    
 
   - 
    
     
    
    
     
      			disMissMySimpleDialog();
     
    
 
   - 
    
     
    
    
     			if(mSimpleDialogistener != null ){
     
    
 
   - 
    
     
    
    
     
      				mSimpleDialogistener.onMyCancle();
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     
      		}else if (v.getId() == R.id.dialog_btn_sure) {
     
    
 
   - 
    
     
    
    
     
      			disMissMySimpleDialog();
     
    
 
   - 
    
     
    
    
     			if(mSimpleDialogistener != null ){
     
    
 
   - 
    
     
    
    
     
      				mSimpleDialogistener.onMySure();
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     
      }
     
    
 
  
 
 核心的就这些,具体的参照demo就可以。
DEMO下载
大家如果有其他问题可以加入我的qq开发群讨论:
开发一群:454430053开发二群:537532956
文章来源: wukong.blog.csdn.net,作者:再见孙悟空_,版权归原作者所有,如需转载,请联系作者。
原文链接:wukong.blog.csdn.net/article/details/78894890
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)