Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;

import android.graphics.Bitmap;

import android.graphics.Canvas;
import android.graphics.Matrix;

import android.graphics.PixelFormat;

import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;

public class Main {

    public static Drawable zoomDrawable(Drawable drawable, int width, int height) {
        if (null == drawable)
            return null;
        return bitmapToDrawable(zoomBitmap(drawableToBitmap(drawable), width, height));
    }

    @SuppressWarnings("deprecation")
    public static Drawable bitmapToDrawable(Bitmap bitmap) {
        if (null == bitmap)
            return null;
        return new BitmapDrawable(bitmap);
    }

    public static Bitmap zoomBitmap(Bitmap bitmap, int width, int height) {
        if (bitmap == null)
            return bitmap;
        int bitmapWidth = bitmap.getWidth();
        int bitmapHeight = bitmap.getHeight();
        Matrix matrix = new Matrix();
        float scaleWidth = ((float) width / bitmapWidth);
        float scaleHeight;
        if (height == 0)
            scaleHeight = scaleWidth;
        else
            scaleHeight = ((float) height / bitmapHeight);
        matrix.postScale(scaleWidth, scaleHeight);
        Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, bitmapWidth, bitmapHeight, matrix, true);
        return newbmp;
    }

    public static Bitmap zoomBitmap(Bitmap bitmap, int width) {
        return zoomBitmap(bitmap, width, 0);
    }

    public static Bitmap drawableToBitmap(Drawable drawable) {
        if (null == drawable)
            return null;
        int w = drawable.getIntrinsicWidth();
        int h = drawable.getIntrinsicHeight();
        Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
                : Bitmap.Config.RGB_565;
        Bitmap bitmap = Bitmap.createBitmap(w, h, config);
        Canvas canvas = new Canvas(bitmap);
        drawable.setBounds(0, 0, w, h);
        drawable.draw(canvas);
        return bitmap;
    }
}