亚洲乱码卡一卡二卡三永久-亚洲乱码一二三四区-亚洲乱码一区二区三区在线观看-亚洲伦理一区-成人在色线视频在线观看免费大全-成人在线91

 

Android關(guān)于自定義的dialog

(2013-01-15 16:34:34)

轉(zhuǎn)載

 

 

 

標(biāo)簽:

it

 

 

 

 首先在布局中寫出你自己想要的dialog的樣式Android關(guān)于自定義的dialog

由于我的圖片需要平鋪            android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:background="@drawable/note_top"
           android:orientation="horizontal" >
       ,自己寫了一個(gè)平鋪的方法。所以在布局中看到的樣子反而不正常。在手機(jī)上能正常顯示。

 實(shí)現(xiàn)平鋪的方法很簡單
 public static void fixBackgroundRepeatY(View view) {   
       Drawable bg = view.getBackground();  
       if (bg != null) {        
              if (bg instanceof BitmapDrawable) {           
                BitmapDrawable bmp = (BitmapDrawable) bg;          
                bmp.mutate(); // make sure that we aren't sharing state anymore
                bmp.setTileModeXY(null,TileMode.REPEAT);       
               
      }
}

 

 接下來就開始寫java代碼了,第一步肯定是extends Dialog

直接貼代碼

public class HPDialog extends Dialog {

 // 先調(diào)用構(gòu)造方法在調(diào)用oncreate方法

 private static boolean isShow = true;
 private Context context;
 private String mYtitle;
 private String mYmsg;

 // private MyDialog myDialog;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
 }

 public HPDialog() {

  super(ClientEngine.getInstance().getBaseActivity());
  this.context = ClientEngine.getInstance().getBaseActivity();
 }

 public HPDialog(Context context, int theme) {
  super(context, theme);
  this.context = context;
 }

 public void setTitle(String title) {
  this.mYtitle = title;
 }

 public void setMsg(String msg) {
  this.mYmsg = msg;
 }
 @Override
 public void show() {
  super.show();
 }
 public static class Builder {

  private Context context;
  private String title;
  private String message;
  private String positiveButtonText;
  private String negativeButtonText;
  private View contentView;
  private DialogInterface.OnClickListener positiveButtonClickListener,
    negativeButtonClickListener;

  // private TextView msg=(TextView)findViewById(R.id.message);
  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 setTitle(int title) {
   this.title = (String) context.getText(title);
   return this;
  }

  public Builder setTitle(String title) {
   this.title = title;
   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 boolean setCancelable(boolean cancelable){
   
   isShow = cancelable;
   return isShow;
  }

  public Builder setNegativeButton(int negativeButtonText,
    DialogInterface.OnClickListener listener) {
   this.negativeButtonText = (String) context
     .getText(negativeButtonText);
   this.negativeButtonClickListener = listener;
   return this;
  }
  
  public Builder setClickFunction(final Command[] commands) {
   if(commands != null)
   {
    if(commands[0]==null){
     this.setPositiveButton("知道了", new OnClickListener() {
      
      @Override
      public void onClick(DialogInterface dialog,
        int which) {

      }
     });
    }else{
     this.setPositiveButton(commands[0].getLabel(), new OnClickListener() {
      
      @Override
      public void onClick(DialogInterface dialog,
        int which) {
       commands[0].onClick();
      }
     });
    }
    if(commands[1]!=null){
     this.setNegativeButton(commands[1].getLabel(), new OnClickListener() {
      
      @Override
      public void onClick(DialogInterface dialog,
        int which) {
       commands[1].onClick();
      }
     });
    }
   }
   return this;
  }

  public Builder setNegativeButton(String negativeButtonText,
    DialogInterface.OnClickListener listener) {
   this.negativeButtonText = negativeButtonText;
   this.negativeButtonClickListener = listener;
   return this;
  }

  public HPDialog show() {
   HPDialog dialog = create();
   dialog.show();
   return dialog;
  }
  
  public HPDialog create() {
   LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   
   // instantiate the dialog with the custom Theme
   final HPDialog dialog = new HPDialog(context, R.style.HPDialog);
   dialog.setCanceledOnTouchOutside(false);//android 4.0以上dialog點(diǎn)擊其他地方也會(huì)消失false以后就只能點(diǎn)擊按鈕消失
   
   View layout = inflater.inflate(R.layout.dialog, null);
   
   ScrollView sv = (ScrollView) layout.findViewById(R.id.HpDialogScrollView);
   
   int width = context.getResources().getDrawable(R.drawable.note_top).getIntrinsicWidth();
   
   
   sv.getLayoutParams().width=width-30;
   
   if(message!=null && message.length()>160){
    
    sv.getLayoutParams().height=MainMenu.screenHeight*2/5;
    
   }
   
   dialog.addContentView(layout, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
   // set the dialog title
   ((TextView)layout.findViewById(R.id.title)).setText(title);
   
   // set the confirm button
   if (positiveButtonText != null) {
    
    ((Button) layout.findViewById(R.id.dialog_button_ok)).setText(positiveButtonText);
    
    if (positiveButtonClickListener != null) {
     
     ((Button) layout.findViewById(R.id.dialog_button_ok)).setOnClickListener(new View.OnClickListener() {
      
        public void onClick(View v) {
         
         positiveButtonClickListener.onClick(dialog,DialogInterface.BUTTON_POSITIVE);
         dialog.dismiss();
        }
       });
    }
   } else {
    
    // if no confirm button just set the visibility to GONE
    layout.findViewById(R.id.dialog_button_ok).setVisibility(View.GONE);
   }
   if (negativeButtonText != null) {
    
    ((Button) layout.findViewById(R.id.dialog_button_cancel)).setText(negativeButtonText);
    if (negativeButtonClickListener != null) {
     
     
//     ((Button) layout.findViewById(R.id.dialog_button_ok)).
     
     ((Button) layout.findViewById(R.id.dialog_button_cancel)).setOnClickListener(new View.OnClickListener() {
      
        public void onClick(View v) {
         
         negativeButtonClickListener.onClick(dialog, DialogInterface.BUTTON_NEGATIVE);
         
         dialog.dismiss();
        }
       });
    }
   } else {
    
    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) ((Button) layout.findViewById(R.id.dialog_button_ok)).getLayoutParams();
   
    params.setMargins(30, 0, 30, 0);//這個(gè)只是根據(jù)我自己的需要調(diào)節(jié)按鈕的位置。大家可以根據(jù)自己的需要來調(diào)節(jié)
    params.width = width-60;
    ((Button) layout.findViewById(R.id.dialog_button_ok)).setLayoutParams(params);
    
    // if no confirm button just set the visibility to GONE
    layout.findViewById(R.id.dialog_button_cancel).setVisibility(View.GONE);
   }
   
   // set the cancel button

   // set the content message
   
   if (message != null) {
    
    ((TextView) layout.findViewById(R.id.msg)).setText(message);
    
   } else if (contentView != null) {
    
    // if no message set
    // add the contentView to the dialog body
    
    ((LinearLayout) layout.findViewById(R.id.body)).removeAllViews();
    
    ((LinearLayout) layout.findViewById(R.id.body)).addView(
      contentView, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
   }
   dialog.setContentView(layout);
   return dialog;
  }
 }
}

 

這樣一個(gè)自定義的dialog就搞定了。用法和系統(tǒng)的一樣。只是換了個(gè)顯示樣式

 

穩(wěn)定

產(chǎn)品高可用性高并發(fā)

貼心

項(xiàng)目群及時(shí)溝通

專業(yè)

產(chǎn)品經(jīng)理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽(yù)

堅(jiān)持

10年專注高端品質(zhì)開發(fā)
  • 返回頂部
主站蜘蛛池模板: www.黄色片 | 国产视频一区二区在线播放 | 伊人久久国产免费观看视频 | 日韩欧美一及在线播放 | 动漫美女无遮挡 | 亚洲精品亚洲人成在线观看麻豆 | 欧美色精品天天在线观看视频 | 天天射天天爱天天干 | 很污的乱小说 | 亚洲人成图片小说网站 | 国产精品伦子一区二区三区 | 欧美一区二区三区四区视频 | 国产九九视频在线观看 | 国产字幕制服中文在线 | 激情在线观看视频免费的 | 草草草在线 | 日本免费一区视频 | 亚洲最大福利网 | 黄色毛片在线 | 欧美成人剧情中文字幕 | 午夜剧院官方 | 欧美视频一区二区三区 | 影音先锋2020色资源网 | 国产大学生一级毛片绿象 | 最新啪啪 | 免费超爽大片黄 | 91亚洲精品自在在线观看 | 欧美日产国产亚洲综合图区一 | 亚洲最大视频网 | 天堂成人在线视频 | 一区二区视频在线免费观看 | 日本精品一区二区三区在线观看 | 污网站在线观看免费 | 成人短视频在线免费观看 | 一区二区三区日韩 | 国产自啪啪 | 亚洲综合九九 | 成在线人免费视频一区二区三区 | 韩国xxxx色视频在线观看免费 | 波多野结衣手机视频一区 | 亚洲成精品动漫久久精久 |