Example usage for android.graphics.drawable Drawable getIntrinsicHeight

List of usage examples for android.graphics.drawable Drawable getIntrinsicHeight

Introduction

In this page you can find the example usage for android.graphics.drawable Drawable getIntrinsicHeight.

Prototype

public int getIntrinsicHeight() 

Source Link

Document

Returns the drawable's intrinsic height.

Usage

From source file:Main.java

public static void drawBottomAlignItem(Canvas canvas, Drawable drawable, View child,
        ViewGroup.MarginLayoutParams params) {

    final int left = child.getLeft() - params.leftMargin;
    final int right = child.getRight() + params.rightMargin;
    final int top = child.getBottom() + params.bottomMargin;
    final int bottom = top + drawable.getIntrinsicHeight();

    drawable.setBounds(left, top, right, bottom);
    drawable.draw(canvas);//from   w  ww  . j  a v a2  s .  c o  m
}

From source file:Main.java

public static Bitmap recolorBitmap(Drawable drawable, int color) {
    if (drawable == null) {
        return null;
    }//  w w  w  . jav  a2 s.  c om

    int width = drawable.getIntrinsicWidth();
    int height = drawable.getIntrinsicHeight();
    if (width <= 0 || height <= 0) {
        return Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
    }

    Bitmap outBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(outBitmap);
    drawable.setBounds(0, 0, outBitmap.getWidth(), outBitmap.getHeight());
    drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
    drawable.draw(canvas);
    drawable.setColorFilter(null);
    drawable.setCallback(null); // free up any references
    return outBitmap;
}

From source file:Main.java

public static void drawTop(Canvas canvas, Drawable drawable, View child, ViewGroup.MarginLayoutParams params) {

    final int left = child.getLeft() - params.leftMargin - drawable.getIntrinsicWidth();
    final int right = child.getRight() + params.rightMargin + drawable.getIntrinsicWidth();
    final int top = child.getTop() - params.topMargin - drawable.getIntrinsicHeight();
    final int bottom = top + drawable.getIntrinsicHeight();

    drawable.setBounds(left, top, right, bottom);
    drawable.draw(canvas);// w ww  . j  a  va 2s .  c  om
}

From source file:Main.java

/**
 * Return the {@link Bitmap} representing the {@link Drawable}.
 * @param drawable Object to convert to {@link Bitmap}.
 * @return {@link Bitmap} representing the {@link Drawable}.
 *//*from  w  ww  .ja va2  s.c  o  m*/
private static Bitmap drawableToBitmap(Drawable drawable) {
    Bitmap retVal;
    if (drawable instanceof BitmapDrawable) {
        //Easy
        retVal = ((BitmapDrawable) drawable).getBitmap();
    } else {
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
        retVal = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
                Bitmap.Config.ARGB_8888);

        synchronized (canvas) {
            canvas.setBitmap(retVal);
            drawable.draw(canvas);
        }
    }
    return retVal;
}

From source file:com.abhinavjhanwar.android.egg.neko.NekoShortcuts.java

private static Bitmap getDarkIcon(Context context, int drawableId) {
    Drawable drawable = ContextCompat.getDrawable(context, drawableId);
    if (drawable != null) {
        drawable.setColorFilter(0xFF616161, PorterDuff.Mode.MULTIPLY);
        Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
                Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
        drawable.draw(canvas);/*from w w  w .  j av  a 2 s.c  o m*/
        return bitmap;
    } else {
        throw new IllegalArgumentException("unsupported drawable type");
    }
}

From source file:Main.java

public static Bitmap convertToBitmap(Drawable dw) {
    Bitmap bitmap;//from  w  w  w .ja  va 2 s .co m

    if (dw instanceof BitmapDrawable) {
        BitmapDrawable bitmapDrawable = (BitmapDrawable) dw;
        if (bitmapDrawable.getBitmap() != null) {
            return bitmapDrawable.getBitmap();
        }
    }

    if (dw.getIntrinsicWidth() <= 0 || dw.getIntrinsicHeight() <= 0) {
        bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
    } else {
        bitmap = Bitmap.createBitmap(dw.getIntrinsicWidth(), dw.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
    }

    Canvas canvas = new Canvas(bitmap);
    dw.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
    dw.draw(canvas);
    return bitmap;
}

From source file:Main.java

public static Bitmap createFromDrawable(Drawable drawable) {
    if (drawable == null)
        return null;

    if (drawable instanceof BitmapDrawable)
        return ((BitmapDrawable) drawable).getBitmap();

    int width = drawable.getIntrinsicWidth();
    if (width == -1) // e.g. for ColorDrawable.
        width = 1;/*from  w w w  .j  av a2  s  .  c o m*/

    int height = drawable.getIntrinsicHeight();
    if (height == -1)
        height = 1;

    // NOTE: Although the following code is a bit expensive, it will not be necessary
    // for most drawables, since they are normally bitmap resources.
    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
    drawable.draw(canvas);

    return bitmap;
}

From source file:Main.java

private static Bitmap drawableToBitMap(Drawable drawable) {
    if (drawable == null) {
        return null;
    }/*  w w w .  j  av a2 s  .  com*/
    if (drawable instanceof BitmapDrawable) {
        BitmapDrawable bitmapDrawable = ((BitmapDrawable) drawable);
        return bitmapDrawable.getBitmap();
    } else {
        Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
                drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);
        Canvas canvas = new Canvas(bitmap);
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
        drawable.draw(canvas);
        return bitmap;
    }
}

From source file:Main.java

@SuppressWarnings("unused")
public static Bitmap drawableToBitmap(Drawable drawable) {
    Bitmap bitmap;/*  w  w w. jav  a2 s.c o  m*/

    if (drawable instanceof BitmapDrawable) {
        BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
        if (bitmapDrawable.getBitmap() != null) {
            return bitmapDrawable.getBitmap();
        }
    }

    if (drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
        bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); // Single color bitmap will be created of 1x1 pixel
    } else {
        bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
                Bitmap.Config.ARGB_8888);
    }

    Canvas canvas = new Canvas(bitmap);
    drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
    drawable.draw(canvas);
    return bitmap;
}

From source file:Main.java

public static void drawBottom(Canvas canvas, Drawable drawable, View child,
        ViewGroup.MarginLayoutParams params) {

    final int left = child.getLeft() - params.leftMargin - drawable.getIntrinsicWidth();
    final int right = child.getRight() + params.rightMargin + drawable.getIntrinsicWidth();
    final int top = child.getBottom() + params.bottomMargin;
    final int bottom = top + drawable.getIntrinsicHeight();

    drawable.setBounds(left, top, right, bottom);
    drawable.draw(canvas);/*from   w  w w.j a v  a 2s .c  om*/
}