我有一个自定义的 ImageView,它允许缩放、平移、画线、矩形等。假设在图像上画了一条线。现在,我想要的是,当用户触摸那条线来移动它时,该部分的放大图像应该显示在 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"
此外,我没有找到一种方法让图像部分显示在画布的右上角。有没有其他方法可以将图像从画布获取位图?请帮忙。