Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 自定義Dialog寬度占滿屏幕,dialog寬度

自定義Dialog寬度占滿屏幕,dialog寬度

編輯:關於android開發

自定義Dialog寬度占滿屏幕,dialog寬度


一、自定義Dialog繼承Dialog

public class MyDialog extends Dialog {

 

二、為Dialog設置樣式

在style中建立新樣式繼承 

@android:style/Theme.Dialog
或者
@android:style/Theme.Holo.Dialog
  • 設置樣式去掉邊框
  • 去掉標題
  • 設置窗口透明
  • 設置點擊對話框外邊可以消失等
  • 設置動畫

 

 <!-- <style name="MyDialog" parent="@android:style/Theme.Dialog">-->
    <style name="MyDialog" parent="@android:style/Theme.Holo.Dialog">
        <!-- 是否有邊框 -->
        <item name="android:windowFrame">@null</item>
        <!--是否在懸浮Activity之上  -->
        <item name="android:windowIsFloating">true</item>
        <!--標題  -->
        <item name="android:windowNoTitle">true</item>
        <!--陰影  -->
        <item name="android:windowIsTranslucent">true</item><!--半透明-->
        <!-- 進入和退出的動畫 -->
        <item name="android:windowAnimationStyle">@style/MyDialogAnimation</item>

        <!-- 點外邊可以消失  -->
        <item name="android:windowCloseOnTouchOutside">true</item>

    </style>


    <style name="MyDialogAnimation">
        <!--進入 -->
        <item name="android:windowEnterAnimation">@anim/dialog_enter</item>
        <!--退出-->
        <item name="android:windowExitAnimation">@anim/dialog_exit</item>
    </style>

 

進入動畫

dialog_enter
dialog_exit
系統自帶的可以找到直接拿來用在SDK下找到
目錄\sdk\platforms\對應的API版本

<set xmlns:android="http://schemas.android.com/apk/res/android"
        android:shareInterpolator="false" >
    <scale android:fromXScale="0.9" android:toXScale="1.0"
           android:fromYScale="0.9" android:toYScale="1.0"
           android:pivotX="50%" android:pivotY="50%"
        
           android:duration="200" />
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
            android:duration="200" />
   
</set>

退出

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
    <scale
        android:duration="200"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0.9"
        android:toYScale="0.9"/>
    <alpha
        android:duration="200"
        android:fromAlpha="1.0"
        android:toAlpha="0.0"/>

</set>

三、在構造方法中設置樣式

Context mContext;

    public MyDialog(Context context) {
        super(context, R.style.MyDialog);
        this.mContext=context;

        
    }

四、設置布局

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_dialog);
    }

布局文件就是2個TextView

五、重寫show方法,設置寬度,高度等

@Override
    public void show() {
        super.show();
        /**
         * 設置寬度全屏,要設置在show的後面
         */
        LayoutParams layoutParams = getWindow().getAttributes();
        layoutParams.gravity=Gravity.BOTTOM;
        layoutParams.width= LayoutParams.MATCH_PARENT;
        layoutParams.height= LayoutParams.WRAP_CONTENT;

        getWindow().getDecorView().setPadding(0, 0, 0, 0);

        getWindow().setAttributes(layoutParams);

    }

 

六、完整Dialog類

/**
 * Dialog 2016年7月30日
 */
public class MyDialog extends Dialog {
    Context mContext;

    public MyDialog(Context context) {
        super(context, R.style.MyDialog);
        this.mContext=context;

        
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_dialog);
    }
    
    @Override
    public void show() {
        super.show();
        /**
         * 設置寬度全屏,要設置在show的後面
         */
        LayoutParams layoutParams = getWindow().getAttributes();
        layoutParams.gravity=Gravity.BOTTOM;
        layoutParams.width= LayoutParams.MATCH_PARENT;
        layoutParams.height= LayoutParams.WRAP_CONTENT;

        getWindow().getDecorView().setPadding(0, 0, 0, 0);

        getWindow().setAttributes(layoutParams);

    }
    
}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved