ScreenUtil.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.guangzhou.haochuan.jxtv.util;
  2. import android.content.Context;
  3. import android.graphics.Point;
  4. import android.util.DisplayMetrics;
  5. import android.view.Display;
  6. import android.view.WindowManager;
  7. /**
  8. * Created by yunhaipiaodi on 2017/9/27.
  9. */
  10. public class ScreenUtil {
  11. private Context mContext;
  12. private Display display;
  13. private static ScreenUtil instance;
  14. public static ScreenUtil getInstance(){
  15. if(instance == null){
  16. instance = new ScreenUtil();
  17. }
  18. return instance;
  19. }
  20. public int getScreenWidth(Context context){
  21. WindowManager wm = (WindowManager) context
  22. .getSystemService(Context.WINDOW_SERVICE);
  23. display = wm.getDefaultDisplay();
  24. Point size = new Point();
  25. display.getSize(size);
  26. int width = size.x;
  27. return width;
  28. }
  29. public int getScreenHeight(Context context){
  30. WindowManager wm = (WindowManager) context
  31. .getSystemService(Context.WINDOW_SERVICE);
  32. display = wm.getDefaultDisplay();
  33. Point size = new Point();
  34. display.getSize(size);
  35. int height = size.y;
  36. return height;
  37. }
  38. public String getDpiType(Context context){
  39. DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
  40. int densityDpi = displayMetrics.densityDpi;
  41. String dpiType = "";
  42. switch (densityDpi){
  43. case 120:
  44. dpiType = "ldpi";
  45. break;
  46. case 160:
  47. int screenWidth = getScreenWidth(context);
  48. int screenHeight = getScreenHeight(context);
  49. if(screenWidth == 1280 && screenHeight == 720){
  50. dpiType = "xhdpi";
  51. }else if(screenWidth == 1920 && screenHeight == 1080){
  52. dpiType = "xxhdpi";
  53. }else{
  54. dpiType = "mdpi";
  55. }
  56. break;
  57. case 240:
  58. dpiType = "hdpi";
  59. break;
  60. case 320:
  61. dpiType = "xhdpi";
  62. break;
  63. case 480:
  64. dpiType = "xxhdpi";
  65. break;
  66. default:
  67. dpiType = "xxhdpi";
  68. break;
  69. }
  70. return dpiType;
  71. }
  72. }