自定义Dialog,动态设置宽高

自定义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) {
}
/**
 * * 确定键监听器
 * * @param listener
 * */
public void setOnPositiveListener(View.OnClickListener listener){
    positiveButton.setOnClickListener(listener);
}
/**
 * * 取消键监听器
 * * @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);
}

}

//代码中动态设置宽高

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, "请输入密码!", 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 {
        //小屏幕   宽度手机两边留空格
        WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
        params.width = this.getWindowManager().getDefaultDisplay().getWidth() - dp2px(40);
        dialog.getWindow().setAttributes(params);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,018评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,508评论 0 17
  • 语言 所有的开发都是从学习一门语言开始的,iOS开发也一样,iOS最初的开发是使用objective-C(简写O...
    一直搬着砖阅读 421评论 0 0
  • 老师,今天给我们留了篇,人,字,我回到家认认真真的写完啦,妈妈夸我写的好,以后老师留了作业,我会更加认真的完成
    褚佳琦阅读 184评论 0 0