gpt4 book ai didi

java - 尽管原始位图是未缩放的,但创建的位图是否已缩放?

转载 作者:行者123 更新时间:2023-12-02 12:25:30 24 4
gpt4 key购买 nike

这是我用来将 Sprite (位图变量)剪切成多个帧的代码:

public void drawFrame(Canvas canvas, int frameIndex, int x, int y){
int nbFramePerRow = data.getWidth() / frameWidth;

int sourceFrameY = frameIndex / nbFramePerRow;
int sourceFrameX = frameIndex - (sourceFrameY * nbFramePerRow);

sourceFrameX *= frameWidth;
sourceFrameY *= frameWidth;

int sourceFrameX2 = sourceFrameX + frameWidth;
int sourceFrameY2 = sourceFrameY + frameHeight;

int x2 = x + frameWidth;
int y2 = y + frameHeight;

Rect src = new Rect(sourceFrameX, sourceFrameY, sourceFrameX2, sourceFrameY2);
Rect dst = new Rect(x, y, x2, y2);

canvas.drawBitmap(data, src, dst, paint);
}

当我将图像放入可绘制图像时,两者(原始图像和剪切图像)都未缩放。当我把它放在 no-dpi fodler 中时,它们都会缩放(这很奇怪,应该是相反的......)。

问题:看起来未缩放和缩​​放的剪切图像的像素不同,但两者的帧本身的大小保持相同。这导致在未缩放时只能看到我想要显示的部分内容。 我想像原始图像一样显示未缩放的剪切图像。

最佳答案

在:

drawable-nodpi

图像未缩放。如果将它们放置在任何其他文件夹中,它们将被视为是针对给定密度制作的,并将缩放以适应其他密度。

请注意,如果您使用 Android Studio 并使用 Android View ,则所有可绘制对象都将显示为可绘制对象,并且如下所示

|
|- Drawable
|-- someimage.png (mdpi)
|-- someimageother.png(idpi)
|-- somethirdimage.png

如果它在不同的可绘制文件夹中后显示给定文件夹。

那么您是否检查过以确保它确实位于 drawable 中而不是其他文件夹中?切换到 project View 来检查它,或者在可绘制名称后面检查。您还可以在您使用的任何操作系统的文件浏览器中打开它并进行检查

<小时/>

如果缩放意味着图像随着密度而变小/变大,那么当尺寸相同时,这是预期的。假设您有一个 256x256 的图像,它在较低密度下看起来更大,在较高密度下看起来更小

关于java - 尽管原始位图是未缩放的,但创建的位图是否已缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45505847/

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