gpt4 book ai didi

android - 位图 + Canvas 密度依赖

转载 作者:太空狗 更新时间:2023-10-29 13:35:55 25 4
gpt4 key购买 nike

我只是不知道如何在位图上绘制(借助 Canvas ),这样结果就不会依赖于设备密度。

这是制作绘图的代码:

ImageView iv = (ImageView)findViewById(R.id.container);
Bitmap result = BitmapFactory.decodeResource(getResources(), R.drawable.big_picture).copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(result);
canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.small_picture), actualX, actualY, null);
iv.setImageBitmap(result);

我在 Bitmap 结果 中加载了一张 big_picture,我想在上面的指定位置绘制一张 small_picture。如果我设置 actualX 和 actualY 在具有相同密度的设备上是可以的。然而,具有不同密度的设备会“缩放” Canvas 。

有趣的是,只有 small_picture 被“缩放”并超出了屏幕,但它后面的 pig_picture 在任何密度屏幕上都能很好地适应屏幕。这是为什么?我怎样才能独立地在大图片密度上绘制小图片?谢谢!

最佳答案

在调试Bitmap 后我发现了问题所在。除非您将图像放入 drawable-nodpi,否则图像将重新调整大小以匹配标称设备密度。 (分别是 120、160、240、320)如果您将图像“加载”到 BitmapCanvas,它们将具有这些密度之一,而不管原始图像的密度。

所以一种解决方案是将图像放入drawable-nodpi。之后,它们将在所有密度下表现相同。

另一种解决方案是根据上述密度的比率乘以坐标。

...或者您可以为所有限定词制作自定义图像和坐标。

关于android - 位图 + Canvas 密度依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10676969/

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