0

我需要缩小我的图像(一侧 +- 2500 像素)以在我的应用程序的设备上显示它们。但我有一个问题。如果我使用我的代码缩小图像(稍微缩小一点),则会显示图像,但侧面会被截断。图像的高度与我的代码完美。我正在使用以下代码缩小图像:

static public Bitmap scaleToFill(Bitmap b, int width, int height) {
    float factorH = height / (float) b.getWidth();
    float factorW = width / (float) b.getWidth();
    float factorToUse = (factorH > factorW) ? factorW : factorH;
    return Bitmap.createScaledBitmap(b, (int) (b.getWidth() * factorToUse), (int) (b.getHeight() * factorToUse), false);
}

我得到的高度和宽度:

        WindowManager wm = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.y;

图像在具有 ScaleType CENTER_CROP 的 ImageView 中查看。我希望有人可以帮助我!提前致谢!

4

2 回答 2

0

这个问题比你想象的要笼统得多。它与缩小或android无关。

如果您希望保持纵横比,您必须选择留有空白空间,或者只显示图像的一部分。

电视上也会出现同样的问题,屏幕的纵横比与发送给它的屏幕的纵横比不同。

还有一种调整图像大小的实验性方法(接缝雕刻),但它并不总是能很好地工作,并且取决于图像本身。

顺便说一句,您缩小比例的方式非常低效,因为它使用大量内存(首先解码原始位图,然后创建一个新位图,它是原始位图的缩小版本)。你应该试试谷歌的方式我的方式

于 2013-08-20T09:11:52.660 回答
0

在布局文件中 - 内部图像视图

<ImageView
 android:scaleType="fitXY"
/>

try with thsi code.
于 2013-08-20T08:38:24.673 回答