dialog常用於activity或fragment頁面上的彈框檢視的展示控制項。還有一種彈框控制項叫popuwindow。二者最重要的區別:dialog是非執行緒阻塞的,popuwindow是執行緒阻塞的。前者在展示的時候所附屬的activity或fragment仍能進行未完成的動作,而popuwindow一旦彈出將會阻塞主線程,即所附屬的介面在他之後的活動將不再進行。當然popuwindow使用起來更加靈活。這也是他的一大好處,針對popuwindow的知識後期來乙個總結。
在我們平時的安卓開發中dialog最常用的是alertdialog。後者是對前者的乙個補充和封裝,alertdialog所有的方法都是採用靜態的模式,並且方法多樣,用起來更加方便和快速。
自定義dialog:
對話方塊最主要的是彈出乙個層,與附屬的父視窗脫離,讓使用者一目了然。但是系統的對話方塊預設格式比較簡單,有時候我們需要一些在對話上的一些操作,例如分享盤、更新對話方塊、簽到對話方塊等等,這時候我們就要對系統的對話方塊進行擴充套件,來達到我們的目的。
最常用的就是自定義乙個布局,然後用dialog進行包裝,同時按照需求對dialog的樣式進行一些修改。
view view0 = getlayoutinflater().inflate(r.layout.dialog_persion_***, null);
new alertdialog.builder(persionactivity.this)
.setview(view0)
.show();
這只是最簡單的引用自定義的布局結合dialog的彈框形成乙個自定義對話方塊,有些同學看到這一點就手舞足蹈了,想著既然能引用自己的布局那我想怎麼布局就怎麼布局,我想設什麼樣的背景就設什麼樣的背景,這樣的說法其實是錯誤的。我們檢視dialog的原始碼知道所有的系統dialog都是一種樣式。細心的同學會發現有些時候我們本來想在對話方塊上設定乙個不規則的png背景,可總是背景是白色的,甚至我們將自定義布局的背景也設成透明也不行。深入dialog的原始碼檢視其樣式知道它是在爺爺級的window視窗下設定了乙個背景,以及其他設定。原樣式:
明白這些就好辦了,為了實現我們的目的,我們乾脆直接修改其原樣式即可:
然後在填充自定義布局的時候將此樣式也設定上就能實現無背景而又任意不規則背景的展現了。
view view = getlayoutinflater().inflate(r.layout.dialog_my_sign,null);
dialog dialog = new dialog(mactivity, r.style.dialogbackgroundnull);
window window = dialog.getwindow();
window.setcontentview(view);
dialog.show();
android開發之自定義dialog
很多時候,系統生成的dialog無法滿足我們的需求,這個時候,我們就只能自己去自定義乙個dialog來滿足自己的需要了。設定dialog 雙按鈕 private void showdialog string str1,string str2 確定按鈕 button btnok button layo...
Android開發之自定義動畫
android開發之動畫 北京android俱樂部群 167839253 created on 2011 8 23 author blueeagle email liujiaxiang gmail.com 總結一下關於android開發下的自定義動畫,主要是四個方面,尺寸,透明度,位置變化和旋轉。動...
Android 開發之自定義控制項開發 02
1.setcolor 該函式的作用是設定畫筆顏色,完整的函式宣告如下 void setcolor int color 我們知道,一種顏色是由紅 綠 藍三色合成出來的,所以引數 color 只能取8位的0xaarrggbb樣式顏色值。其中 2.setstyle viod setstyle style ...