【问题标题】:Image resize not working in Android图像调整大小在 Android 中不起作用
【发布时间】:2013-12-19 18:13:25
【问题描述】:

我有来自服务器的 1024 x 900 图像。我想得到这张图片的一半。

我用这个代码

img.setImageBitmap(Bitmap.createBitmap(bitmap,0,bitmap.getWidth()/2, bitmap.getWidth(), bitmap.getHeight()/2));

但是当我这样做时,我有这个错误

y+height must be <=bitmap.getHeight

我应该怎么做才能没有得到异常。

【问题讨论】:

    标签: android bitmap android-imageview android-image bitmapimage


    【解决方案1】:

    参数应该是位图、起始 x 和 y、宽度和高度。然后试试:

    img.setImageBitmap(Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth() / 2, bitmap.getHeight() / 2));
    

    【讨论】:

    • 我必须保持图像宽度大小,但高度必须是一半。
    • 只需在第 4 个参数中设置 bitmap.getWidth()
    【解决方案2】:

    但是使用该值,您可能会得到图像的意外部分,或者更有可能是错误。

    如果你检查docs of the function你可以看到这个签名:

    createBitmap(Bitmap source, int x, int y, int width, int height)
    

    所以,你必须指出起点的x和y,以及你想要的矩形的宽度和高度。

    如果你想要上半部分,你可以使用:

    img.setImageBitmap(Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth()  , bitmap.getHeight() / 2));
    

    如果你想要下半场,你可以使用:

    img.setImageBitmap(Bitmap.createBitmap(bitmap, 0, bitmap.getHeight() / 2, bitmap.getWidth()  , bitmap.getHeight() / 2));
    

    【讨论】:

    • 谢谢你的帮助,但我需要圈的后半部分而不是前半部分。我想你明白我的意思。
    猜你喜欢
    • 1970-01-01
    • 2014-05-13
    • 2014-08-29
    • 2014-05-12
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多