我正在创建一个多点触控应用程序,该应用程序依赖于具有用户无法看到的多个“命中框”的图像,但在触摸时执行操作。
我创建了一个用于保存hitbox信息的画布和位图。但是,在onDraw中平移和缩放我的视图画布与具有hitbox区域的位图不同。
具体代码见下文。 (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();
}