gpt4 book ai didi

java - 如何根据宽度和高度像素在 Android 中缩放我的位图?

转载 作者:行者123 更新时间:2023-11-30 03:47:42 25 4
gpt4 key购买 nike

我希望能够根据屏幕尺寸缩放图像。在一个普通的 Java 小程序中,我会做类似下面的事情......

int windowWidth = 1280;
int windowHeight = 720;

Image image;

public void paint(Graphics g)
{
g.drawImage(image, x, y, windowWidth / 4, windowHeight / 16, null);
}

我一直在寻找答案,但我发现的一切似乎都出现了一些奇怪的结果。从我读到的内容来看,我可能需要对与分辨率无关的像素做一些事情,但我不确定 %100。

我试图避免的事情是必须为不同的屏幕密度创建一组全新的图像和图标。我上面展示的方法可以毫无问题地调整桌面应用程序的大小。

编辑:

这就是我在 android 中用来绘制图像的方法。

Matrix matrix = new Matrix();
Bitmap image;

Constuctor....()
{
image = BitmapFactory.decodeResource(context.getResources(), R.drawable.play);
}

public void render(Canvas c)
{
c.drawBitmap(image, matrix, null);
}

最佳答案

您好,请看我发布的问题 scale bitmap

如果您使用的是 Canvas ,请获取 Canvas 的宽度和高度。或者如果你想让它成为正式的正常布局,那么使用

获取宽度和高度
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
dispWidth=metrics.widthPixels;
dispheight=metrics.heightPixels;

然后像这样根据您的要求缩放我们的位图。在这里我必须有 8 block 砖,所以我用列数除以宽度

      String strwidth=String.valueOf(((float)(bmp.getWidth())/NO_COLUMNS));
if(strwidth.contains("."))
{
scalebit=Bitmap.createScaledBitmap(bmp, (int)(Math.ceil(((float)bmp.getWidth())/NO_COLUMNS))*NO_COLUMNS, bmp.getHeight(), true);
}
else
{
scalebit=bmp;
}

关于java - 如何根据宽度和高度像素在 Android 中缩放我的位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14701216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com