问题描述
- java.lang.IllegalArgumentException: x 一定要小于 bitmap.width()
- 获取屏幕截图,用裁剪图片创建位图的时候出现了错误,
先看看我的代码吧:
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
但是报错了
解决方案
Bitmap createBitmap (Bitmap source int x int y int width int height)
x + width must equal or less than source.getWidth() in your case 60 + 480 > 480 so error occur.
时间: 2024-09-27 10:03:44