Example usage for android.graphics.drawable Drawable draw

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

Introduction

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

Prototype

public abstract void draw(@NonNull Canvas canvas);

Source Link

Document

Draw in its bounds (set via setBounds) respecting optional effects such as alpha (set via setAlpha) and color filter (set via setColorFilter).

Usage

From source file:com.dm.material.dashboard.candybar.helpers.DrawableHelper.java

@Nullable
public static byte[] getBitmapByte(@NonNull Drawable drawable) {
    try {//from   w  ww .  j ava2  s. c  o m
        Bitmap bitmap;
        if (drawable instanceof LayerDrawable) {
            bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
                    Bitmap.Config.ARGB_8888);
            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
            drawable.draw(new Canvas(bitmap));
        } else {
            bitmap = ((BitmapDrawable) drawable).getBitmap();
        }
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 10, stream);
        return stream.toByteArray();
    } catch (Exception | OutOfMemoryError e) {
        LogUtil.e(Log.getStackTraceString(e));
    }
    return null;
}

From source file:Main.java

public static Bitmap drawable2Bitmap(Drawable drawable) {
    if (drawable instanceof BitmapDrawable) {
        return ((BitmapDrawable) drawable).getBitmap();
    } else if (drawable instanceof NinePatchDrawable) {
        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;
    } else {//w w w  . jav a  2 s  .c  o m
        return null;
    }
}

From source file:org.xbmc.kore.utils.Utils.java

/**
 * Converts a drawable to a bitmap/*from w w  w  . j a va  2  s .c om*/
 * @param drawable Drawable to convert
 * @return Bitmap
 */
public static Bitmap drawableToBitmap(Drawable drawable, int width, int height) {
    if (drawable instanceof BitmapDrawable) {
        return ((BitmapDrawable) drawable).getBitmap();
    }

    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

public static Bitmap drawableToBitmap(Drawable drawable) {
    if (drawable instanceof BitmapDrawable) {
        BitmapDrawable bitmapDrawable = ((BitmapDrawable) drawable);
        return bitmapDrawable.getBitmap();
    } else {/*from www .  ja va 2  s  . c om*/
        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

/**
 * Return the {@link Bitmap} representing the {@link Drawable}.
 * @param drawable Object to convert to {@link Bitmap}.
 * @return {@link Bitmap} representing the {@link Drawable}.
 *///from   www .j  av  a  2 s  .co  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.zandbee.floatingtitlebar.FloatingTitleBarActivity.java

public static Bitmap drawableToBitmap(Drawable drawable) {
    if (drawable instanceof BitmapDrawable) {
        return ((BitmapDrawable) drawable).getBitmap();
    }//from   w w w  .  j ava2s  .  c om

    final Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
            Config.ARGB_8888);
    final 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 Bitmap drawableToBitmap(Drawable drawable) {
    if (drawable instanceof BitmapDrawable) {
        return ((BitmapDrawable) drawable).getBitmap();
    } else if (drawable instanceof NinePatchDrawable) {
        Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
                drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
                        : Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

        drawable.draw(canvas);
        return bitmap;
    } else {//from w ww  .  ja v  a  2  s .  c o m
        throw new IllegalArgumentException("can not support this drawable to bitmap now!!!");
    }
}

From source file:org.microg.gms.maps.bitmap.ResourceBitmapDescriptor.java

public static Bitmap drawableToBitmap(Context context, Drawable drawable) {
    if (drawable instanceof BitmapDrawable) {
        return ((BitmapDrawable) drawable).getBitmap();
    }/*from   ww w.  j a v  a2 s .c  o  m*/

    if (drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
        return DefaultBitmapDescriptor.DEFAULT_DESCRIPTOR.loadBitmap(context);
    }

    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);

    return bitmap;
}

From source file:org.wikipedia.page.shareafact.SnippetImage.java

private static void drawLicenseIcons(@NonNull Context context, @Nullable Bitmap leadImageBitmap,
        @NonNull ImageLicense license, @NonNull Canvas canvas, boolean isArticleRTL) {
    final int bottom = SnippetImage.HEIGHT - SnippetImage.BOTTOM_PADDING;
    final int top = bottom - SnippetImage.ICONS_HEIGHT;
    int left = SnippetImage.HORIZONTAL_PADDING;
    int right = left + SnippetImage.ICONS_WIDTH;

    if (isArticleRTL) {
        right = SnippetImage.WIDTH - SnippetImage.HORIZONTAL_PADDING;
        left = right - SnippetImage.ICONS_WIDTH;
    }/* www .  j  av a  2s  .co  m*/

    Drawable d = ContextCompat.getDrawable(context,
            shouldDefaultToCCLicense(leadImageBitmap, license) ? R.drawable.ic_license_cc
                    : license.getLicenseIcon());
    d.setBounds(left, top, right, bottom);
    d.draw(canvas);
}

From source file:com.dm.material.dashboard.candybar.helpers.DrawableHelper.java

@Nullable
public static Drawable getResizedDrawable(@NonNull Context context, @DrawableRes int drawableRes,
        @DimenRes int dimenRes) {
    try {//from w w w . j  a v a 2  s  .c o m
        Drawable drawable = getDrawable(context, drawableRes);
        if (drawable == null)
            return null;

        int size = context.getResources().getDimensionPixelSize(dimenRes);

        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);

        return new BitmapDrawable(context.getResources(), Bitmap.createScaledBitmap(bitmap, size, size, true));
    } catch (Exception | OutOfMemoryError e) {
        LogUtil.d(Log.getStackTraceString(e));
        return null;
    }
}