Android,Java:缩放.PNG导致质量低下

时间:2013-01-05 03:10:46

标签: java android bitmap image-scaling

我正在使用Java为Android创建此游戏。我使用此代码:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html用于调整位图的大小,我在所有图像上使用.PNG格式。除非Bitmaps质量下降很多,即使我从较大的图像缩小它,它也能很好地工作。这可以解决吗?

1 个答案:

答案 0 :(得分:0)

您可以试用此代码。

 public static Bitmap shrinkBitmap(String p_file, int p_width, int p_height)
{
    BitmapFactory.Options m_bmpFactoryOptions = new BitmapFactory.Options();
    m_bmpFactoryOptions.inJustDecodeBounds = true;
    Bitmap m_bitmap = BitmapFactory.decodeFile(p_file, m_bmpFactoryOptions);
    int m_heightRatio =
            (int) Math.ceil(m_bmpFactoryOptions.outHeight / (float) p_height);
    int m_widthRatio =
            (int) Math.ceil(m_bmpFactoryOptions.outWidth / (float) p_width);
    if (m_heightRatio > 1 || m_widthRatio > 1)
    {
        if (m_heightRatio > m_widthRatio)
        {
            m_bmpFactoryOptions.inSampleSize = m_heightRatio;
        }
        else
        {
            m_bmpFactoryOptions.inSampleSize = m_widthRatio;
        }
    }       
    m_bmpFactoryOptions.inJustDecodeBounds = false;
    m_bitmap = BitmapFactory.decodeFile(p_file, m_bmpFactoryOptions);
    return m_bitmap;
}

EDITED: 在这里,我也尝试过其他方式。 你能不能让我知道你如何扩展.PNGs以便我能得到这个想法。