使用Bitmap在Android中绘制图像

时间:2014-07-08 10:24:42

标签: java android

我需要在给定分辨率(640x480,1280x720等)的屏幕内放置一个随机图像。我用Java完成了它。在Android中不支持BufferedImage和Graphics2D,我想知道是否有办法将这个代码从Java替换为Android。这是我的Java代码:

public BufferedImage resizeImage(BufferedImage originalImage, int type){
    BufferedImage resizedImage = new BufferedImage(screenWidth, screenHeight, type);
    Graphics2D g = resizedImage.createGraphics();

    int imgWidth = originalImage.getWidth();
    int imgHeight = originalImage.getHeight();
    int newImgWidth = 0;
    int newImgHeight = 0;
    int X = 0;
    int Y = 0;

    if (imgWidth > screenWidth){
        // scale width to fit
        newImgWidth = screenWidth;

        //scale height to maintain aspect ratio
        newImgHeight = (newImgWidth * imgHeight) / imgWidth;
    }

    if (newImgHeight > screenHeight) {
        //scale height to fit instead
        newImgHeight = screenHeight;
        //scale width to maintain aspect ratio
        newImgWidth = (newImgHeight * imgWidth) / imgHeight;
    }

    if (imgWidth < screenWidth && imgHeight < screenHeight) {
        X = screenWidth/2 - imgWidth/2;
        Y = screenHeight/2 - imgHeight/2;

        g.drawImage(originalImage, X, Y, imgWidth, imgHeight, null);
        g.dispose();

        return resizedImage;
    }

    X = screenWidth/2 - newImgWidth/2;
    Y = screenHeight/2 - newImgHeight/2;

    g.drawImage(originalImage, X, Y, newImgWidth, newImgHeight, null);
    g.dispose();

    return resizedImage;
}

提前谢谢!

0 个答案:

没有答案