[Android]自定義dialog

吃過飯,有沒有太寫代碼的願望,就開始想今天工作中遇到的問題瞭。

 

 有一個很有意思的東西就是Dialog,這個是基礎的組件:

 

 

我們會在一些地方需要自定義彈出窗,可是用popUpWindow太小題大作,用彈出式的Activity有時數據傳參之類又有點麻煩,還是dialog好,可以隨意的改動。

 

就讓我們來看看我遇到的問題吧。

 

  我想在點擊一個Button時選擇是相冊還是相機,就這麼一個彈出式的window,我剛開始想用AlterDialog,可是在設置alterDialog時,需要先調用show()再調用setContentView(),這個實在是太不科學(不知道各位對AlterDialog有什麼想法或我用AlterDialog在這裡是不是有點問題)。

 

一怒之下用瞭Dialog。

 

 先創建一個Dailog: 

 

 

upLoadPd = new Dialog(mActivity, R.style.NoBoundDialog);

這個樣式也奉上: 

 

<style name="NoBoundDialog" parent="android:style/Theme.Dialog">   

       <item name="android:windowFrame">@null</item>   

       <item name="android:windowIsFloating">true</item>   

       <item name="android:windowIsTranslucent">true</item>   

       <item name="android:windowNoTitle">true</item>   

       <item name="android:background">@android:color/transparent</item>   

       <item name="android:windowBackground">@android:color/transparent</item>   

       <item name="android:backgroundDimEnabled">true</item>   

       <item name="android:backgroundDimAmount">0.6</item>   

   </style>

 

 

這個樣式很重要,一些參數可能會根據你的需要來設置。

 

下面就是要向Dialog中添充視圖瞭:

 

 

LayoutInflater inflater = mActivity.getLayoutInflater();   

        View view = inflater.inflate(R.layout.best_beautiful_libs_publish_result, null);   

        ………………………………   

        upLoadPd.setContentView(view);

 

 

  若是View裡需要點擊事件之類的,果斷地添加響應事件。

 

ok,需要調用時就直接show()吧。

 

剛開始寫博客,文筆和思路不是很清晰,希望大傢理解下。

發佈留言