android 自定義實現圓角Dialog

2021-08-02 08:52:04 字數 2439 閱讀 9448

首先我們需要自定義dialog布局檔案view_input_pwd_dialog.xml,如下:

<?xml version="1.0" encoding="utf-8"?>

dialog背景圓角定義dialog_bg.xml:

<?xml version="1.0" encoding="utf-8"?>

**實現:

layoutinflater inflater = layoutinflater

.from(getactivity());

linearlayout layout = (linearlayout) inflater.inflate(

r.layout.view_input_pwd_dialog, null);

final edittextwithlabel pwdet = (edittextwithlabel) layout

.findviewbyid(r.id.edit_text);

button firmbtn = (button) layout

.findviewbyid(r.id.btn_dialog_firm);

button canclebtn = (button) layout

.findviewbyid(r.id.btn_dialog_give_up);

textview wifinametv = (textview) layout.findviewbyid(r.id.wifi_name);

wifinametv.settext(getstring(r.string.share_wifi_name_lable, wifi.hot_name));

pwdet.getedittext().setinputtype(inputtype.type_class_text

| inputtype.type_text_variation_password);

pwdet.getimageview().setonclicklistener(new view.onclicklistener() else

pwdet.getedittext().setselection(pwdet.gettext().tostring().length());

}});

final alertdialog dlg = new alertdialog.builder(

getactivity()).create();

dlg.setview(layout, 0, 0, 0, 0);//防止黑邊

dlg.setcancelable(true);

firmbtn.setonclicklistener(new view.onclicklistener()

if (!stringutils.isempty(pwd) && pwd.length() < 8)

wifi.password = pwd;

mnetid = mhotmanager.connectwifi(wifi);

mfragmenthomebinding.header.setcentertext(wifi.hot_name, 20);

updateconnectingui(getresources().getstring(r.string.be_connecting));

isconnecting = true;

mfragmenthomebinding.header.startanimation();

dlg.dismiss();

}});

canclebtn.setonclicklistener(new view.onclicklistener()

});window window = dlg.getwindow();

window.setbackgrounddrawable(new colordrawable(color.transparent)); // 有白色背景,加這句**

dlg.show();

//獲取螢幕的長寬

windowmanager windowmanager = getactivity().getwindowmanager();

display display = windowmanager.getdefaultdisplay();

int screenheight = display.getheight();

int screenwidth = display.getwidth();

//設定彈出框的長寬

dlg.getwindow().setlayout(screenwidth * 4 / 5, screenheight * 2 / 5);

最終實現效果:

Android 自定義圓角 陰影布局

設定布局的圓角,將子view超出圓角的區域裁剪掉 設定陰影,不改變子view的大小,將布局大小擴充到可以容納陰影,並調整子view的位置 使用canvas.clip 方法裁剪畫圖區域 存在鋸齒,不使用 使用paint的xfermode進行處理,獲得需要效果 使用 使用viewoutlineprovi...

Android 自定義帶圓角的dialog

由於感覺android系統自帶的dialog樣式不是很美觀,就自己定義了乙個dialog 1.在styles裡定義樣式 2.在drawable裡定義乙個shape畫圓角 3.在layout裡定義個性化布局 4.activity裡的 layoutinflater inflater getlayouti...

自定義部分圓角的實現

最優雅的解決方法,莫過於使用 uibezierpath。廢話不多說,直接上 uiview view uiview alloc initwithframe cgrectmake 100,100,200,200 view.backgroundcolor uicolor redcolor 設定上邊左右圓角...