自定義Dialog,動(dòng)態(tài)設(shè)置寬高

自定義Dialog
public class ChangeModeDialog extends Dialog {

  public ChangeModeDialog(Context context) {
    super(context,R.style.Dialog);
    setCustomDialog();
}

private void setCustomDialog() {
    View mView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_tip_layout, null);
    editText = (EditText) mView.findViewById(R.id.editText);
    positiveButton = (Button) mView.findViewById(R.id.positiveButton);
    negativeButton = (Button) mView.findViewById(R.id.negativeButton);
    super.setContentView(mView);
}
public View getEditText(){
    return editText;
}
@Override
public void setContentView(int layoutResID) {
}
@Override
public void setContentView(View view, ViewGroup.LayoutParams params) {
}
@Override
public void setContentView(View view) {
}
/**
 * * 確定鍵監(jiān)聽器
 * * @param listener
 * */
public void setOnPositiveListener(View.OnClickListener listener){
    positiveButton.setOnClickListener(listener);
}
/**
 * * 取消鍵監(jiān)聽器
 * * @param listener
 * */
public void setOnNegativeListener(View.OnClickListener listener){
    negativeButton.setOnClickListener(listener);
}
public void setTitle(String t)
{
    title.setText(t);
}
public void setpositiveButtonTxt(String t)
{
    positiveButton.setText(t);
}
public void setnegativeButtonTxt(String t)
{
    negativeButton.setText(t);
}

}

//代碼中動(dòng)態(tài)設(shè)置寬高

public void onChangeControlModeOnClick(View view) {

    final ChangeModeDialog dialog = new ChangeModeDialog(this);
    dialog.setOnPositiveListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String pwd = ((EditText) dialog.getEditText()).getText().toString();
            if (StringUtil.isEmpty(pwd)) {
                Toast.makeText(UnderDeviceDetailActivity.this, "請(qǐng)輸入密碼!", Toast.LENGTH_SHORT).show();
            } else {
                getMessenger().sendRecoveryDeviceToControlledMode(deviceId, pwd);
                dialog.dismiss();
            }
        }
    });
    dialog.setOnNegativeListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            dialog.dismiss();
        }
    });
    dialog.show();

    int screenWidth1 = this.getWindowManager().getDefaultDisplay().getWidth();
    if (screenWidth1 >= 450) {  //大屏幕,直接寫死dialog的寬度
        WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
        params.width = dp2px(450);

        dialog.getWindow().setAttributes(params);
    } else {
        //小屏幕   寬度手機(jī)兩邊留空格
        WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
        params.width = this.getWindowManager().getDefaultDisplay().getWidth() - dp2px(40);
        dialog.getWindow().setAttributes(params);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,833評(píng)論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 6,497評(píng)論 0 17
  • 語言 所有的開發(fā)都是從學(xué)習(xí)一門語言開始的,iOS開發(fā)也一樣,iOS最初的開發(fā)是使用objective-C(簡(jiǎn)寫O...
    一直搬著磚閱讀 420評(píng)論 0 0
  • 老師,今天給我們留了篇,人,字,我回到家認(rèn)認(rèn)真真的寫完啦,媽媽夸我寫的好,以后老師留了作業(yè),我會(huì)更加認(rèn)真的完成
    褚佳琦閱讀 184評(píng)論 0 0