我有一个自定义ImageView,允许缩放,平移,绘制线条,矩形等。说在图像上绘制一条线。现在,我想要的是,当用户触摸该线移动它时,该部分的放大图像应该显示在图像视图的右上角(即画布内)的某处,这允许用户准确地放置线。放大的图像部分也应包含该行,并且应该在用户移动线时不断更新图像。
我尝试过使用着色器
mShader = new BitmapShader(myBitmap, TileMode.CLAMP, TileMode.CLAMP);
shademat=new Matrix();
mPaint = new Paint();
mPaint.setShader(mShader);
在ACTION_DOWN事件中,我有
shademat.reset();
shademat.postScale(2f, 2f, curr.x, curr.y);
prex=curr.x;
prey=curr.y;
和onDraw()
mShader.setLocalMatrix(shademat);
canvas.drawCircle(prex, prey, 100, mPaint);
但是我无法将画布图像放到着色器上,b'coz不知何故
canvas.setBitmap(myBitmap)
即使在通过禁用“强制GPU渲染”后,也会在ICS上出错
android:hardwareAccelerated="false"
此外,我没有找到一种方法让图像部分显示在画布的右上角。 有没有其他方法可以将图像从画布转换为位图?请帮忙。