Android 在画布上画画

Android 在画布上画画,android,paint,Android,Paint,我已经编写了在图像上绘制文本的代码,工作正常。我在potrait模式下捕获图像,但应用程序崩溃。当我在横向模式下捕获图像时,我得到异常Java.lang.IllegalStateException:传递给画布构造函数的不可变位图 Canvas canvas = new Canvas(photo); Typeface tf = Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD);

我已经编写了在图像上绘制文本的代码,工作正常。我在potrait模式下捕获图像,但应用程序崩溃。当我在横向模式下捕获图像时,我得到异常Java.lang.IllegalStateException:传递给画布构造函数的不可变位图

Canvas canvas = new Canvas(photo);
                    Typeface tf = Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD);
                    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
                    paint.setStyle(Style.FILL);
                    paint.setTypeface(tf);
                    paint.setColor(Color.WHITE);
                    paint.setStrokeWidth(12); 
                    canvas.drawBitmap(photo, 0, 0, paint);
                    canvas.drawText(topaste, 10, 115, paint);
                    image.setImageBitmap(photo);

画布对象基本上需要一个新的位图来绘制,传入不可变的图像会破坏后面的绘制操作。下面的代码为画布创建一个新位图。您需要替换宽度和高度变量以匹配您的用例:

Bitmap b = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
Canvas canvas = new Canvas(photo);

画布对象基本上需要一个新的位图来绘制,传入不可变的图像会破坏后面的绘制操作。下面的代码为画布创建一个新位图。您需要替换宽度和高度变量以匹配您的用例:

Bitmap b = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
Canvas canvas = new Canvas(photo);

有没有解释为什么这只发生在风景区?有没有解释为什么这只发生在风景区?