我正在创建一个多点触控应用程序,该应用程序依赖于具有多个用户看不到的“命中框”的图像,但在触摸时会执行操作。
我创建了一个画布和位图来保存 hitbox 信息。但是,在 onDraw 中平移和缩放视图的画布与具有命中框区域的位图不同。
具体代码见下文。(hitbox 和 b 是位图, hb 是画布)任何帮助表示赞赏。
public TouchImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mBackground = this.getBackground();
mBackground.setBounds(0, 0, mBackground.getIntrinsicWidth(), mBackground.getIntrinsicHeight());
this.setBackgroundResource(android.R.color.transparent);
// Create our ScaleGestureDetector
mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
hitbox = BitmapFactory.decodeResource(context.getResources(), R.drawable.hitbox);
b = hitbox.copy(Bitmap.Config.ARGB_8888, true);
hb = new Canvas(b);
}
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
super.onDraw(hb);
canvas.save();
hb.save();
canvas.translate(mPosX, mPosY);
hb.translate(mPosX, mPosY);
canvas.scale(mScaleFactor, mScaleFactor);
hb.scale(mScaleFactor, mScaleFactor);
mBackground.draw(canvas);
canvas.restore();
hb.restore();
}