- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在截图和创建带裁剪图片的位图时出错
下面是我的代码
View v1 = mKittyBGLayer.getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap source = v1.getDrawingCache();
int width = source.getWidth();
int height = source.getHeight();
System.out.println("vListView : -"+vListView.getWidth());
System.out.println("hListView : -"+hListView.getHeight());
System.out.println("Width : -"+width);
System.out.println("Height : -"+height);
bitmap = Bitmap.createBitmap(source, vListView.getWidth(), 0, width, height - hListView.getHeight());
我的日志是
11-01 11:00:31.419: I/System.out(1658): vListView :- 60
11-01 11:00:31.429: I/System.out(1658): hListView :- 60
11-01 11:00:31.429: I/System.out(1658): Width :- 480
11-01 11:00:31.429: I/System.out(1658): Height :- 320
11-01 11:00:31.429: D/AndroidRuntime(1658): Shutting down VM
11-01 11:00:31.429: W/dalvikvm(1658): threadid=1: thread exiting with uncaught exception (group=0x40018560)
11-01 11:00:31.429: E/AndroidRuntime(1658): FATAL EXCEPTION: main
11-01 11:00:31.429: E/AndroidRuntime(1658): java.lang.IllegalArgumentException: x + width must be <= bitmap.width()
11-01 11:00:31.429: E/AndroidRuntime(1658): at android.graphics.Bitmap.createBitmap(Bitmap.java:410)
11-01 11:00:31.429: E/AndroidRuntime(1658): at android.graphics.Bitmap.createBitmap(Bitmap.java:383)
11-01 11:00:31.429: E/AndroidRuntime(1658): at com.appsehs.android.CUTECRAZYKITTENDRESSUPGAME.PhotoSortrActivity.takeScreenShot(PhotoSortrActivity.java:247)
11-01 11:00:31.429: E/AndroidRuntime(1658): at com.appsehs.android.CUTECRAZYKITTENDRESSUPGAME.PhotoSortrActivity.onOptionsItemSelected(PhotoSortrActivity.java:274)
11-01 11:00:31.429: E/AndroidRuntime(1658): at android.app.Activity.onMenuItemSelected(Activity.java:2205)
这里可以看到 x < bitmap.getWidth 的意思是 60 < 480
虽然我得到了错误
最佳答案
不,不是x must be < bitmap.width()
.它说x + width must be <= bitmap.width()
.
您正在创建一个 Bitmap
像这样:
Bitmap.createBitmap(source, 60, 0, 480, 260); // 320 - 60 = 260
基本上,您是从 x = 60, y = 0
中绘制的至 x = 480 + 60, y = 260
在 Bitmap
上只有 480x320。显然,这是不可能的,因为你的 x
坐标关闭Bitmap
.
如果不知道您的确切用例,很难告诉您如何解决此问题。基本上,你的 source
图片必须适合 { x1: x, x2: x + width, y1: y, y2: y + height }
.
如果你只想从第 60 个像素开始绘制,那么你需要这样做:
Bitmap.createBitmap(source, vListView.getWidth(), 0, width - vListView.getWidth(), height - hListView.getHeight());
关于android - createBitmap --- java.lang.IllegalArgumentException : x must be < bitmap. 宽度(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13171509/
我有一个线性布局(宽度 = 填充父级,基本上它填满了设备的整个宽度),它包含 2 个子布局。一个 width=fill_parent 的线性布局(让我们称之为 linear1),第二个是 width=
当我尝试调用 createBitmap 时出现 java.lang.NullPointerException。这是我的代码: board = Bitmap.createBitmap(handler.s
我加载我保存的位图的位数组。 (和 BITMAPINFOHEADER 结构)。 HBITMAP Filemanager::LoadNextImageFromMyFile(HANDLE file) {
在我的应用程序中,我正在从它的颜色代码创建一个位图,如下所示: int width=getImageWidth(); int height=getImageHeight(); int[] array=
这个问题在这里已经有了答案: android - out of memory exception when creating bitmap (9 个回答) 关闭 8 年前。 我试图解决 Androi
我正在使用此代码来压缩图像,但是此代码有时工作正常,但当图像超过 3-4 个时,它会出现内存不足错误。错误发生在 Bitmap.createBitmap 上。 请帮我解决这个问题。 public St
尝试将此 OpenCV java 代码转换为 C#。 OpenCV Android Background Subtraction 大部分时间都在工作,但我在这条线上绊倒了 bmp = Bitmap.c
这个问题在这里已经有了答案: Android View.getDrawingCache returns null, only null (10 个答案) 关闭 7 个月前。 如果我在按钮点击监听器中
我有一个问题,我正在编写缩放位图的代码并使用 Bitmap.createBitmap() 方法创建新的位图,该方法总是返回一个我无法识别的错误。请向我建议有关相同的任何解决方案。 错误堆栈: 02-2
我需要大位图 (6000x2000),所以我创建了一个: Bitmap.Config conf = Bitmap.Config.ARGB_4444; Bitmap bm = Bitmap.create
有时,当我尝试创建模糊位图时,我会收到“空指针异常”。 发生在这段代码中(我最近开始捕捉异常,所以至少它不会使应用程序崩溃): try { using (Bitmap.Config confi
根据文档 Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filt
您好,我正在创建图像编辑应用程序,我正在为 Canvas 和 ImageView 创建位图 这里我在 imageView 中使用 385kb 尺寸为 2000x2000 的图像文件 这是图片 我的问题
我需要为我在 Direct2D 中处理的光线转换器创建一个像素数组的位图。但是,我无法理解如何使用 CreateBitmap功能。具体来说,我不确定 srcData 参数应该是什么。我很确定/希望它是
为什么会 Bitmap bmp; bmp = Bitmap.createBitmap( 100, 100, Config.RGB_565 ); 曾经返回过高度和宽度为 -1 的位图吗?我在文档中没有看
我正在尝试从 View 中获取位图,因为我想模糊该位图并将其用作后续 Activity 的背景。 Logcat 给我: NullPointerException at android.graphics
我有一个静态方法,它应该加载 strip 图像,并返回带有图像 strip 每个图 block 的 Bitmap[]。我使用了这样的方法,但在桌面 java 中使用 BufferedImages 取得
我想在 JNI 中使用这段代码,而不用返回到 Java。 我已经将位图操作转换为 JNI(感谢其他 stackoverflow 海报),但这看起来更复杂,因为我不明白如何调用构造函数。 Bitmap
我已经在 HTC Desire with Android 2.2 上测试了我的游戏。游戏是 2D 的,具有带有多个位图图像(帧)的自定义 Sprite 。使用方法 Bitmap.createBitma
我正在尝试在 Android 中扩展可缩放的图像查看器以并排使用两个图像。为此,我使用了 Bitmap.createBitmap(int, int, Bitmap.Config)。不幸的是,这似乎会使
我是一名优秀的程序员,十分优秀!