游戏退出确认对话框

作者:追风剑情 发布于:2016-7-15 14:18 分类:Android

示例:制作一个游戏退出时的确认对话框

GameExitDialog.java

  1. package com.test.androidtest;
  2.  
  3. import android.app.Dialog;
  4. import android.content.Context;
  5. import android.view.Gravity;
  6. import android.view.View;
  7. import android.view.Window;
  8. import android.view.WindowManager;
  9. import android.widget.TextView;
  10.  
  11. /**
  12. * 退出游戏对话框
  13. */
  14. public class GameExitDialog extends Dialog{
  15.  
  16. public GameExitDialog(Context context) {
  17. super(context, R.style.game_exit_dialog);
  18. setCanceledOnTouchOutside(false);
  19. Window window = getWindow();
  20. WindowManager.LayoutParams params = window.getAttributes();
  21. params.gravity = Gravity.CENTER;
  22. window.setAttributes(params);
  23. View view = getLayoutInflater().inflate(R.layout.game_exit_dialog, null);
  24. TextView cancelTextView = (TextView)view.findViewById(R.id.cancelTextView);
  25. cancelTextView.setOnClickListener(new android.view.View.OnClickListener(){
  26. @Override
  27. public void onClick(View v) {
  28. GameExitDialog.this.dismiss();
  29. }
  30. });
  31. TextView okTextView = (TextView)view.findViewById(R.id.okTextView);
  32. okTextView.setOnClickListener(new android.view.View.OnClickListener(){
  33. @Override
  34. public void onClick(View v) {
  35. //TODO: 处理退出逻辑
  36. GameExitDialog.this.dismiss();
  37. android.os.Process.killProcess(android.os.Process.myPid());
  38. }
  39. });
  40. setContentView(view);
  41. }
  42. }

 

styles.xml

  1. <resources>
  2. <style name="game_exit_dialog" parent="@android:style/Theme.Dialog">
  3. <item name="android:windowFrame">@null</item>
  4. <item name="android:windowIsFloating">true</item>
  5. <item name="android:windowIsTranslucent">true</item>
  6. <item name="android:windowNoTitle">true</item>
  7. <item name="android:background">@android:color/transparent</item>
  8. <item name="android:windowBackground">@android:color/transparent</item>
  9. <item name="android:backgroundDimEnabled">true</item>
  10. <item name="android:backgroundDimAmount">0.6</item>
  11. </style>
  12. </resources>

 

rounded_corners_view.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android">
  3. <solid android:color="#ffffff" />
  4. <corners android:radius="10dp" />
  5. <padding android:left="40dp" android:top="5dp"
  6. android:right="40dp" android:bottom="5dp" />
  7. </shape>

 

textview_style_cancle_gray.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android">
  3. <solid android:color="#cccccc" />
  4. <corners android:radius="20dp" />
  5. <padding android:left="20dp" android:top="5dp"
  6. android:right="20dp" android:bottom="5dp" />
  7. </shape>

 

textview_style_ok_blue.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android">
  3. <solid android:color="#99ccff" />
  4. <corners android:radius="20dp" />
  5. <padding android:left="20dp" android:top="5dp"
  6. android:right="20dp" android:bottom="5dp" />
  7. </shape>


colors.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <color name="white">#FFFFFF</color><!--白色 -->
  4. </resources>

game_exit_dialog.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:background="@drawable/rounded_corners_view"
  6. android:orientation="vertical"
  7. android:fadingEdge="none"
  8. style="@android:style/Theme.Dialog">
  9.  
  10. <LinearLayout
  11. android:layout_width="fill_parent"
  12. android:layout_height="30dp"
  13. android:gravity="center"
  14. android:orientation="horizontal" >
  15.  
  16. <TextView
  17. android:layout_width="wrap_content"
  18. android:layout_height="wrap_content"
  19. android:text="提 示"
  20. android:textSize="20sp" />
  21. </LinearLayout>
  22.  
  23. <LinearLayout
  24. android:layout_width="fill_parent"
  25. android:layout_height="wrap_content"
  26. android:layout_marginTop="16dp"
  27. android:gravity="center"
  28. android:orientation="horizontal" >
  29.  
  30. <TextView
  31. android:layout_width="wrap_content"
  32. android:layout_height="wrap_content"
  33. android:text="是否要退出游戏?"
  34. android:textColor="#333"
  35. android:textSize="18sp" />
  36. </LinearLayout>
  37.  
  38. <!-- 按钮 -->
  39.  
  40. <LinearLayout
  41. android:layout_width="fill_parent"
  42. android:layout_height="wrap_content"
  43. android:layout_marginTop="18dp"
  44. android:layout_marginBottom="15dp"
  45. android:gravity="center"
  46. android:orientation="horizontal" >
  47.  
  48. <TextView
  49. android:id="@+id/cancelTextView"
  50. android:layout_width="wrap_content"
  51. android:layout_height="wrap_content"
  52. android:layout_marginRight="20dp"
  53. android:background="@drawable/textview_style_cancle_gray"
  54. android:textColor="@color/white"
  55. android:text="取 消"
  56. android:textSize="18sp"/>
  57. <View
  58. android:layout_width="20dp"
  59. android:layout_height="1dp"/>
  60.  
  61. <TextView
  62. android:id="@+id/okTextView"
  63. android:layout_width="wrap_content"
  64. android:layout_height="wrap_content"
  65. android:background="@drawable/textview_style_ok_blue"
  66. android:textColor="@color/white"
  67. android:text="确 定"
  68. android:textSize="18sp" />
  69. </LinearLayout>
  70.  
  71. </LinearLayout>

 

 

//显示游戏退出确认框
GameExitDialog dialog = new GameExitDialog(this);
dialog.show();

 

运行测试

 111111111.png

标签: Android

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号