gpt4 book ai didi

java - Android Drawable getTransparentRegion() 不工作

转载 作者:行者123 更新时间:2023-12-01 04:42:20 25 4
gpt4 key购买 nike

我正在尝试获取 PNG 透明区域的尺寸。

Region transparentRegion = drawable.getTransparentRegion();

据我所知,我的 Drawable 100% 有效,它们的所有功能都按预期工作。

getTransparentRegion 调用不会失败,但任何对返回区域执行任何操作的尝试都是空指针异常,并导致我的应用程序崩溃。

05-01 20:54:14.207: E/AndroidRuntime(19159): java.lang.NullPointerException
05-01 20:54:14.207: E/AndroidRuntime(19159): 在 android.graphics.Region.setPath(Region.java:105)

在 2.3.7 和 4.2 上进行测试

有什么想法可能导致这种情况吗?

我真正想做的是调整图像的非透明区域(总是矩形),如果有更直接的方法来实现这一点,我的耳朵是开放的。

最佳答案

我认为您误解了函数getTransparentRegion()

该函数在默认的 Android 实现中始终返回 null。这是 documentation: 的引用

The default implementation returns null, indicating no transparent region; subclasses can optionally override this to return an actual Region if they want to supply this optimization information, but it is not required that they do so.

它还说您可以创建自己的自定义类并覆盖此函数并编写一些聪明的像素检查器来查找透明像素和区域并返回一些可理解的内容。 (所以基本上,如果你希望它有用,你必须使用你自己的逻辑来做到这一点)。

这个调用从 API 1 开始就存在。现在,如果您像我一样,您可能会想“为什么他们会创建这样的方法并且总是返回 null?”我能想到的唯一答案是“当时这似乎是合乎逻辑的事情。”

关于java - Android Drawable getTransparentRegion() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16328865/

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