2 bluetooth99 bluetooth99 于 2012.11.01 15:28 提问

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

但是报错了

1个回答

cytown
cytown   2012.11.30 16:36

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.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
createBitmap — java.lang.IllegalArgumentException: x must be < bitmap.width()错误的解决
No, not x must be . It says x + width must be . You are creating a Bitmap like so: Bitmap.createBitmap(source, 60, 0, 480, 260); // 320 - 60 = 260 Basically, you are drawing from x = 60
java.lang.IllegalArgumentException: x + width must be <= bitmap.width()问题
该如何处理?
Bitmap.createBitmap参数异常之java.lang.IllegalArgumentException: width and height must be > 0
代码: public static Bitmap readBitmapInSize(Context paramContext, int paramInt, int width, int height) { Matrix matrix = new Matrix(); Bitmap bitmap = readBitmap(paramContext, paramInt); matrix.s
android 如何分析java.lang.IllegalArgumentException: Cannot draw recycled bitmaps异常
该类问题的分析,一般是需要找到bitmap对象在那个位置有被recyle,然后再检查代码。 如何定位到是在哪个代码位置有把bitmap 对象recyle,可以在 Bitmap.java的recycle方法中,加log打印出call stack来定位。   具体的修改参考如下:    public void recycle() {         if (!mRecycled) {
Bitmap.createBitmap java.lang.IllegalArgumentException: width and height must be > 0 问题解决
写了一个把图片旋转的方法,但是报错,java.lang.IllegalArgumentException: width and height must be > 0  设置转换矩形区域,旋转时要判断旋转角度是否大于0后,就不在报错了 public static void setDirectionImage(Context mActivity,ImageView image
Android 使用createBitmap时出现异常 width and height must be > 0
异常信息:Caused by: java.lang.IllegalArgumentException: width and height must be > 0 异常代码: Bitmap resizeBitmap(int desHeight, int desWidth, Bitmap originBitmap) { int height = originBitmap.g
java.lang.IllegalArgumentException: width and height must be > 0
width and height must be > 0
Python中的一些“坑”
作者:chen_h 微信号 &amp;amp; QQ:862251340 微信公众号:coderpai 1. 不要使用可变对象作为函数默认值 先来看个例子: def append_to_list(value, def_list = []): def_list.append(value) return def_list my_list = append_to_list(1) ...
R语言基础教程1:数据类型
R语言基础教程1:数据类型       R语言基础教程1:数据类型 R语言基础教程2:散点图 R语言基础教程3:曲线图、误差线和图例 R语言基础教程4:柱形图 R语言基础教程5:图形页面排版 R语言基础教程6:程序设计基础 R语言基础教程7:数据描述性统计 了解数据的分类和数据结构对于生物专业的学生来说是很枯燥的。但数据又是最基本的东西,没有数据,只能玩干瞪眼。怕枯燥的,这
查询区间小于x的个数,不修改
题意: 给一个长度为n(n<=1e5)的数组 给q个询问,每个询问有l,r,x三个数 每个询问就是查询[l,r]中有多少个<=x的数解法: 先将原数组A排序,并保留原有的下标,排序后的数组为B数组 然后对询问按x从小到大排序 for询问 对每个x暴力处理每一个小于x的B数组元素在原数组A的下标pos,用树状数组对pos+1 这样就说明在pos这个位置有1个小于x的值再进行下区间求和就