java - 创建位图不起作用

标签 java android matrix bitmap

出于某种原因,我的位图创建无法正常工作。我发现错误了吗?当我尝试使用 Matrix 制作新位图时,它说我的宽度和高度必须大于 0,这毫无意义。

Bitmap tempbmp = Bitmap.createBitmap(image1, 0, 0, newwidth, newheight, matrix, true);

我知道这可能看起来我没有做过任何研究,但我已经做了,但这毫无意义。我已经尝试了很多事情,包括将 newwidth 和 newheight 更改为常量,但它仍然不起作用。如果有帮助,这里是堆栈跟踪跟踪

11-03 18:32:00.700: E/AndroidRuntime(9113): java.lang.IllegalArgumentException: width and height must be > 0
11-03 18:32:00.700: E/AndroidRuntime(9113):     at android.graphics.Bitmap.createBitmap(Bitmap.java:603)
11-03 18:32:00.700: E/AndroidRuntime(9113):     at android.graphics.Bitmap.createBitmap(Bitmap.java:551)
11-03 18:32:00.700: E/AndroidRuntime(9113):     at com.ajayinkingston.antiverse.Level.tick(Level.java:291)
11-03 18:32:00.700: E/AndroidRuntime(9113):     at com.ajayinkingston.antiverse.Logic.tick(Logic.java:65)
11-03 18:32:00.700: E/AndroidRuntime(9113):     at com.ajayinkingston.antiverse.GameView.run(GameView.java:142)
11-03 18:32:00.700: E/AndroidRuntime(9113):     at java.lang.Thread.run(Thread.java:856)

我正在尝试制作一个旋转门户。我想要一个矩阵平移、旋转和缩放,但我没有得到它的工作。我决定去掉翻译,只做一个图像,然后再画图像。矩阵在这里创建:

matrix.reset();             
matrix.setScale((newwidth)/image1.getWidth(), (newheight)/image1.getHeight());
matrix.postRotate(rotation, image1.getWidth()/2 + x, image1.getHeight()/2 + y);

newwidth 和 newheight 的值无关紧要,因为常量会发生此错误。

最佳答案

检查Bitmap.java代码 如果 image1 widthheight 为 0,则会发生这些异常。

更新。 或矩阵为空。

https://github.com/android/platform_frameworks_base/blob/master/graphics/java/android/graphics/Bitmap.java#L680

关于java - 创建位图不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33511286/

相关文章:

python - 逐行比较不同形状的 numpy 数组,删除相同的值?

r - 每列不同的硬阈值

java - 验证FFT算法的正确性

android - 如何通过 tapTargetView 添加 View ?

java - Cassandra - 有没有办法限制异步查询的数量?

android - 错误 :Cannot configure the 'publishing' extension after it has been accessed

android - HTC Desire HD 的 Sqlite 问题

r - 展开矩阵列表的维数

java - 自动查找泄漏内存的 JUnit 测试的方法

Java,通用类型的通用接口(interface)——一个糟糕的设计?