IOSStyle.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. package com.kongzue.dialogx.style;
  2. import android.content.res.Resources;
  3. import com.kongzue.dialogx.interfaces.DialogXStyle;
  4. import com.kongzue.dialogx.iostheme.R;
  5. import java.util.HashMap;
  6. /**
  7. * @author: Kongzue
  8. * @github: https://github.com/kongzue/
  9. * @homepage: http://kongzue.com/
  10. * @mail: myzcxhh@live.cn
  11. * @createTime: 2020/9/26 13:09
  12. */
  13. public class IOSStyle implements DialogXStyle {
  14. private IOSStyle() {
  15. }
  16. public static IOSStyle style() {
  17. return new IOSStyle();
  18. }
  19. @Override
  20. public int layout(boolean light) {
  21. return light ? R.layout.layout_dialogx_ios : R.layout.layout_dialogx_ios_dark;
  22. }
  23. @Override
  24. public int enterAnimResId() {
  25. return R.anim.anim_dialogx_ios_enter;
  26. }
  27. @Override
  28. public int exitAnimResId() {
  29. return 0;
  30. }
  31. @Override
  32. public int[] verticalButtonOrder() {
  33. return new int[]{BUTTON_OK, SPLIT, BUTTON_OTHER, SPLIT, BUTTON_CANCEL};
  34. }
  35. @Override
  36. public int[] horizontalButtonOrder() {
  37. return new int[]{BUTTON_CANCEL, SPLIT, BUTTON_OTHER, SPLIT, BUTTON_OK};
  38. }
  39. @Override
  40. public int splitWidthPx() {
  41. return 1;
  42. }
  43. @Override
  44. public int splitColorRes(boolean light) {
  45. return light ? R.color.dialogxIOSSplitLight : R.color.dialogxIOSSplitDark;
  46. }
  47. @Override
  48. public BlurBackgroundSetting messageDialogBlurSettings() {
  49. return new BlurBackgroundSetting() {
  50. @Override
  51. public boolean blurBackground() {
  52. return true;
  53. }
  54. @Override
  55. public int blurForwardColorRes(boolean light) {
  56. return light ? R.color.dialogxIOSBkgLight : R.color.dialogxIOSBkgDark;
  57. }
  58. @Override
  59. public int blurBackgroundRoundRadiusPx() {
  60. return dip2px(15);
  61. }
  62. };
  63. }
  64. private int dip2px(float dpValue) {
  65. final float scale = Resources.getSystem().getDisplayMetrics().density;
  66. return (int) (dpValue * scale + 0.5f);
  67. }
  68. @Override
  69. public HorizontalButtonRes overrideHorizontalButtonRes() {
  70. return new HorizontalButtonRes() {
  71. @Override
  72. public int overrideHorizontalOkButtonBackgroundRes(int visibleButtonCount, boolean light) {
  73. if (visibleButtonCount == 1) {
  74. return light ? R.drawable.button_dialogx_ios_bottom_light : R.drawable.button_dialogx_ios_bottom_night;
  75. } else {
  76. return light ? R.drawable.button_dialogx_ios_right_light : R.drawable.button_dialogx_ios_right_night;
  77. }
  78. }
  79. @Override
  80. public int overrideHorizontalCancelButtonBackgroundRes(int visibleButtonCount, boolean light) {
  81. return light ? R.drawable.button_dialogx_ios_left_light : R.drawable.button_dialogx_ios_left_night;
  82. }
  83. @Override
  84. public int overrideHorizontalOtherButtonBackgroundRes(int visibleButtonCount, boolean light) {
  85. return light ? R.drawable.button_dialogx_ios_center_light : R.drawable.button_dialogx_ios_center_night;
  86. }
  87. };
  88. }
  89. @Override
  90. public VerticalButtonRes overrideVerticalButtonRes() {
  91. return new VerticalButtonRes() {
  92. @Override
  93. public int overrideVerticalOkButtonBackgroundRes(int visibleButtonCount, boolean light) {
  94. return light ? R.drawable.button_dialogx_ios_center_light : R.drawable.button_dialogx_ios_center_night;
  95. }
  96. @Override
  97. public int overrideVerticalCancelButtonBackgroundRes(int visibleButtonCount, boolean light) {
  98. return light ? R.drawable.button_dialogx_ios_bottom_light : R.drawable.button_dialogx_ios_bottom_night;
  99. }
  100. @Override
  101. public int overrideVerticalOtherButtonBackgroundRes(int visibleButtonCount, boolean light) {
  102. return light ? R.drawable.button_dialogx_ios_center_light : R.drawable.button_dialogx_ios_center_night;
  103. }
  104. };
  105. }
  106. @Override
  107. public WaitTipRes overrideWaitTipRes() {
  108. return new WaitTipRes() {
  109. @Override
  110. public boolean blurBackground() {
  111. return true;
  112. }
  113. @Override
  114. public int overrideBackgroundColorRes(boolean light) {
  115. return 0;
  116. }
  117. @Override
  118. public int overrideTextColorRes(boolean light) {
  119. return light?R.color.white:R.color.black;
  120. }
  121. };
  122. }
  123. @Override
  124. public BottomDialogRes overrideBottomDialogRes() {
  125. return new BottomDialogRes() {
  126. @Override
  127. public boolean touchSlide() {
  128. return false;
  129. }
  130. @Override
  131. public int overrideDialogLayout(boolean light) {
  132. //return light ? R.layout.layout_dialogx_bottom_material : R.layout.layout_dialogx_bottom_material_dark;
  133. return light ? R.layout.layout_dialogx_bottom_ios : R.layout.layout_dialogx_bottom_ios_dark;
  134. }
  135. @Override
  136. public int overrideMenuDividerDrawableRes(boolean light) {
  137. return light ? R.drawable.rect_dialogx_ios_menu_split_divider : R.drawable.rect_dialogx_ios_menu_split_divider_night;
  138. }
  139. @Override
  140. public int overrideMenuDividerHeight(boolean light) {
  141. return 1;
  142. }
  143. @Override
  144. public int overrideMenuTextColor(boolean light) {
  145. return light ? R.color.dialogxIOSBlue : R.color.dialogxIOSBlueDark;
  146. }
  147. @Override
  148. public float overrideBottomDialogMaxHeight() {
  149. return 0f;
  150. }
  151. @Override
  152. public int overrideMenuItemLayout(boolean light, int index, int count) {
  153. if (light) {
  154. if (index == 0) {
  155. return R.layout.item_dialogx_ios_bottom_menu_top_light;
  156. } else if (index == count - 1) {
  157. return R.layout.item_dialogx_ios_bottom_menu_bottom_light;
  158. } else {
  159. return R.layout.item_dialogx_ios_bottom_menu_center_light;
  160. }
  161. } else {
  162. if (index == 0) {
  163. return R.layout.item_dialogx_ios_bottom_menu_top_dark;
  164. } else if (index == count - 1) {
  165. return R.layout.item_dialogx_ios_bottom_menu_bottom_dark;
  166. } else {
  167. return R.layout.item_dialogx_ios_bottom_menu_center_dark;
  168. }
  169. }
  170. }
  171. };
  172. }
  173. }