package eoc.studio.voicecard.utils; import android.content.ClipData; import android.content.Context; import android.content.res.Resources; import android.util.DisplayMetrics; import android.view.View; import android.view.View.DragShadowBuilder; public class DragUtility { public static final String LABLE_STAMP = "I am stamp"; public static final String LABLE_TO_TRASH = "Try to trash"; public static void dragView(View view, String dragKey, String dragContext) { ClipData data = ClipData.newPlainText(dragKey, dragContext); DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view); view.startDrag(data, shadowBuilder, view, 0); } /** * This method converts dp unit to equivalent pixels, depending on device density. * * @param dp A value in dp (density independent pixels) unit. Which we need to convert into pixels * @param context Context to get resources and device specific display metrics * @return A float value to represent px equivalent to dp depending on device density */ public static float convertDpToPixel(float dp, Context context){ Resources resources = context.getResources(); DisplayMetrics metrics = resources.getDisplayMetrics(); float px = dp * (metrics.densityDpi / 160f); return px; } /** * This method converts device specific pixels to density independent pixels. * * @param px A value in px (pixels) unit. Which we need to convert into db * @param context Context to get resources and device specific display metrics * @return A float value to represent dp equivalent to px value */ public static float convertPixelsToDp(float px, Context context){ Resources resources = context.getResources(); DisplayMetrics metrics = resources.getDisplayMetrics(); float dp = px / (metrics.densityDpi / 160f); return dp; } }