开发者社区 问答 正文

android 这个为什么会报错呢???:报错

这个是错误信息:

11-08 21:54:41.489: E/AndroidRuntime(5507): FATAL EXCEPTION: main
11-08 21:54:41.489: E/AndroidRuntime(5507): java.lang.IllegalArgumentException: width and height must be > 0
11-08 21:54:41.489: E/AndroidRuntime(5507):  at android.graphics.Bitmap.nativeCreate(Native Method)
11-08 21:54:41.489: E/AndroidRuntime(5507):  at android.graphics.Bitmap.createBitmap(Bitmap.java:477)
11-08 21:54:41.489: E/AndroidRuntime(5507):  at android.graphics.Bitmap.createBitmap(Bitmap.java:444)
11-08 21:54:41.489: E/AndroidRuntime(5507):  at com.cui.puzzle.ModeTwoView.cutBitmap(ModeTwoView.java:128)
11-08 21:54:41.489: E/AndroidRuntime(5507):  at com.cui.puzzle.ModeTwoView.randomGenerated(ModeTwoView.java:99)
11-08 21:54:41.489: E/AndroidRuntime(5507):  at com.cui.puzzle.ModeTwoView.init(ModeTwoView.java:73)
11-08 21:54:41.489: E/AndroidRuntime(5507):  at com.cui.puzzle.ModeTwoView.start(ModeTwoView.java:42)
11-08 21:54:41.489: E/AndroidRuntime(5507):  at com.cui.puzzle.HeadView$1.onClic(HeadView.java:27)
11-08 21:54:41.489: E/AndroidRuntime(5507):  at com.cui.puzzle.ui.VarSurfaceview$Anniu.onKeyDown(VarSurfaceview.java:100)
11-08 21:54:41.489: E/AndroidRuntime(5507):  at com.cui.puzzle.ui.VarSurfaceview.onTouchEvent(VarSurfaceview.java:276)
11-08 21:54:41.489: E/AndroidRuntime(5507):  at android.view.View.dispatchTouchEvent(View.java:3885)

这个是代码

if (mBitmap.getWidth() < mBitmap.getHeight()) {
                        cutBitmapWidht = mBitmap.getWidth() / Constans.row;
                        cutBitmapHeight = mBitmap.getWidth() / Constans.col;
                } else {
                        cutBitmapWidht = mBitmap.getHeight() / Constans.row;
                        cutBitmapHeight = mBitmap.getHeight() / Constans.col;
                }
                System.out.println(cutBitmapHeight + "     " + cutBitmapWidht);
                offsetH = VarImage.tw / Constans.col;
                offsetW = VarImage.tw / Constans.row;

                float scaleWidth = offsetW / cutBitmapWidht;
                float scaleHeight = offsetH / cutBitmapHeight;

                Matrix matrix = new Matrix();
                matrix.postScale(scaleWidth, scaleHeight);
                oBitamp = new Bitmap[Constans.row * Constans.col];
                for (int i = 0; i < Constans.col; i++) {
                        for (int j = 0; j < Constans.row; j++) {
                                if (cutBitmapWidht > 0 && cutBitmapHeight > 0) {
                                        oBitamp[i * Constans.row + j] = Bitmap.createBitmap(
                                                        mBitmap, cutBitmapWidht * j, cutBitmapHeight * i,
                                                        cutBitmapWidht, cutBitmapHeight, matrix, true);
                                }

                        }
                }

里面输出宽高138 138 为什么出错 呢

展开
收起
kun坤 2020-06-14 10:57:27 522 分享 版权
1 条回答
写回答
取消 提交回答
  • 看这java.lang.IllegalArgumentException: width and height must be > 0

    可能返回负数 要取绝对值

    加reset();试试  ######谢谢,没用过reset(); 怎么加啊?
    2020-06-14 10:57:34
    赞同 展开评论
问答分类:
问答标签:
问答地址: