閱讀913 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Android Dialog 全屏

一、在style中定義樣式:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Transparent"> 
    <item name="android:windowBackground">@color/transparent_background</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowIsTranslucent">true</item>   
    <item name="android:windowAnimationStyle">@+android:style/Animation.Translucent</item> 
  </style>
</resources>

其中transparent_background為顏色值:#50000000,透明度為50

二、代碼中定義Dialog時添加樣式:

final Dialog dialog = new Dialog(this,R.style.Transparent);

------------------------------------分割線------------------------------------

全屏顯示Dialog的設置

下麵是Dialog的style:

<!-- 全屏dialog樣式 左右插入 -->
    <style name="mydialog" 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:backgroundDimEnabled">false</item>
        <item name="android:windowBackground">#FFFFFF</item>
    </style>

下麵是創建Dialog的代碼:

Dialog dialog = new Dialog(Activity.this, R.style.mydialog);
 dialog.setContentView(R.layout.layout);
 LayoutParams lay = dialog.getWindow().getAttributes();
 setParams(lay);
 dialog.show();

private void setParams(LayoutParams lay) {
  DisplayMetrics dm = new DisplayMetrics();
  getWindowManager().getDefaultDisplay().getMetrics(dm);
  Rect rect = new Rect();
  View view = getWindow().getDecorView();
  view.getWindowVisibleDisplayFrame(rect);
  lay.height = dm.heightPixels - rect.top;
  lay.width = dm.widthPixels;
 }


最後更新:2017-04-03 14:54:38

  上一篇:go 動態設置android:drawableLeft|Right|Top|Bottom
  下一篇:go LinearLayout 垂直滾動