我已经扩展了一个ImageView,并且我在onDraw方法中为画布添加了一行。
@Override
public void onDraw(Canvas canvas) {
if(mBitmap!=null) {
paint.reset();
paint.setXfermode(DUFF_LIGHTEN);
paint.setColor(Color.rgb(0, 0, 0));
paint.setStrokeWidth(30);
canvas.drawLine(0, 100, canvas.getWidth(), 100, paint);
}
}
我可以在屏幕上看到这条线,但是当我调用GetDrawable Method时,我会看到原始图像。 UI Canvas(onDraw one)无法分配给另一个位图。这会抛出一个不受支持的操作异常。
我应该如何覆盖getDrawable方法以获取在屏幕画布中绘制的图像?
@Override
public Drawable getDrawable() {
return super.getDrawable();
}
我无法使用getDrawingCache因为我的图像比屏幕更大。
非常感谢
答案 0 :(得分:0)
要使用直线获取Drawable,您应该在Drawable画布上绘制(转换为位图并绘制),而不是在ImageView画布上绘制。在ImageView画布上绘图不会在存储在变量中的Drawable上绘制。