dip To Pixel Offset - Android Graphics

Android examples for Graphics:Pixel

Description

dip To Pixel Offset

Demo Code


//package com.java2s;

import android.content.Context;

import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;

public class Main {
    private static final String TAG = "ViewUtils";

    public static int dipToPixelOffset(float dip, Context context) {
        return dimensionToPixelOffset(TypedValue.COMPLEX_UNIT_DIP, dip,
                context);/*w ww . j  ava 2 s  .com*/
    }

    public static int dimensionToPixelOffset(int unit, float dimension,
            Context context) {
        if (context == null) {
            Log.w(TAG,
                    "Argument 'context' is null at dimensionToPixelOffset(int, int, Context)");
            return 0;
        }
        DisplayMetrics metrics = context.getResources().getDisplayMetrics();

        float strictValue = dimensionToPixelStrictly(unit, dimension,
                metrics);
        return (int) strictValue;
    }

    private static float dimensionToPixelStrictly(int unit, float value,
            DisplayMetrics metrics) {
        switch (unit) {
        case TypedValue.COMPLEX_UNIT_PX:
            return value;
        case TypedValue.COMPLEX_UNIT_DIP:
            return value * metrics.density;
        case TypedValue.COMPLEX_UNIT_SP:
            return value * metrics.scaledDensity;
        case TypedValue.COMPLEX_UNIT_PT:
            return value * metrics.xdpi * (1.0f / 72);
        case TypedValue.COMPLEX_UNIT_IN:
            return value * metrics.xdpi;
        case TypedValue.COMPLEX_UNIT_MM:
            return value * metrics.xdpi * (1.0f / 25.4f);
        }
        return 0;
    }
}

Related Tutorials