上網查詢時發現,許多人都建議使用alertdialog來實現自定義對話方塊,故對其進行了嘗試:
view modifypassworddialog = getlayoutinflater().inflate(r.layout.dialog_modify_password, null);alertdialog alertdialog = new alertdialog.builder(this).create();
alertdialog.setview(modifypassworddialog,0,0,0,0);
window window = alertdialog.getwindow();
windowmanager.layoutparams lp = window.getattributes();
// 設定透明度為0.3
lp.alpha = 0.6f;
window.setattributes(lp);
alertdialog.getwindow().setbackgrounddrawable(new colordrawable(color.transparent));
alertdialog.show();
如此一來,alertdialog.setview(modifypassworddialog,0,0,0,0);能夠使得整個對話方塊的邊界與自定義貼近,但是無法去除對話方塊的白色邊界;若自定義
是非矩形的,則對話方塊中的剩餘部分會被黑色所代替,此時通過設定透明度lp.alpha = 0.6f;亦無法解決。
除此以外,alertdialog中只提供了setview方法,這與setcontentview是不同的,參考:
嘗試了使用重寫dialog的oncreate方法後,成功實現:
dialog dialog = new dialog(this)@override
public void onbackpressed()
};dialog.setcancelable(false);
dialog.requestwindowfeature(window.feature_no_title);
dialog.getwindow().setbackgrounddrawable(new colordrawable(color.transparent));//對話方塊與自定義影象的邊界用透明代替黑色
dialog.show();
android 自定義實現圓角Dialog
首先我們需要自定義dialog布局檔案view input pwd dialog.xml,如下 dialog背景圓角定義dialog bg.xml 實現 layoutinflater inflater layoutinflater from getactivity linearlayout layo...
重寫UIPageControl實現自定義按鈕
有時候uipagecontrol需要用到白色的背景,那麼會導致上面的點按鈕看不見或不清楚,我們可以通過繼承該類重寫函式來更換點按鈕的現實.實現思路如下.新建類繼承uipagecontrol inte ce mypagecontrol uipagecontrol id initwithframe cg...
重寫UIPageControl實現自定義按鈕
新建類繼承uipagecontrol mypagecontrol.h檔案 inte ce mypagecontrol uipagecontrol id initwithframe cgrect frame property nonatomic,retain uiimage imagepagestat...