content: package com.alibaba.android.playground.utils;
  
  import android.content.Context;
  import android.util.Pair;
  import android.util.TypedValue;
  
  import java.util.concurrent.atomic.AtomicInteger;
  
  /**
   * Description:
   *
   * Created by rowandjj(chuyi)<br/>
   */
  public class Utils {
      private Utils(){}
  
      public static int dp2px(Context context, int dp) {
          return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
      }
  
      public static Pair<Integer,Integer> getScreenSize(Context context) {
          int width = context.getResources().getDisplayMetrics().widthPixels;
          int height = context.getResources().getDisplayMetrics().heightPixels;
          return Pair.create(width, height);
      }
  
      private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1);
  
      public static int generateViewId() {
          for (;;) {
              final int result = sNextGeneratedId.get();
              // aapt-generated IDs have the high byte nonzero; clamp to the range under that.
              int newValue = result + 1;
              if (newValue > 0x00FFFFFF) newValue = 1; // Roll over to 1, not 0.
              if (sNextGeneratedId.compareAndSet(result, newValue)) {
                  return result;
              }
          }
      }
  }
  