Android view.getDrawingCache()未刷新原始图像

Android view.getDrawingCache()未刷新原始图像,android,view,touch-event,Android,View,Touch Event,我在一个屏幕上有4个图像。 我试图在原始图像的顶部覆盖位图。代码如下: @Override public boolean onTouch(View view, MotionEvent event) { if (drawIt) { drawIt = false; view.buildDrawingCache(); bmpOrignal = view.getDrawingCache(); bmpGradient = ge

我在一个屏幕上有4个图像。 我试图在原始图像的顶部覆盖位图。代码如下:

@Override
    public boolean onTouch(View view, MotionEvent event) {
    if (drawIt) {
        drawIt = false;
        view.buildDrawingCache();
        bmpOrignal = view.getDrawingCache();
        bmpGradient = getGradient();
        bmpOverlay = overlay(bmpOrignal, bmpGradient);
        x_limit = view.getLeft() + bmpOrignal.getWidth();
        y_limit = view.getTop() + bmpOrignal.getHeight();
    }

    if (event.getX() > x_limit || event.getY() > y_limit) {

        ((ImageView)view).setImageBitmap(bmpOrignal);
    } else {

        ((ImageView)view).setImageBitmap(bmpOverlay);
    }

    if (event.getAction() == MotionEvent.ACTION_CANCEL) {
        drawIt = false;

        if (event.getX() > x_limit || event.getY() > y_limit) {

        ((ImageView)view).setImageBitmap(bmpOrignal);
        } else {

        ((ImageView)view).setImageBitmap(bmpOrignal);
        }
    }

    if (event.getAction() == MotionEvent.ACTION_UP) {
        drawIt = true;

        if (event.getX() > x_limit || event.getY() > y_limit) {

        ((ImageView)view).setImageBitmap(bmpOrignal);
        } else {

        ((ImageView)view).setImageBitmap(bmpOrignal);
        }
        actionUp(view, event);
    }
    return false;
    }
现在,当我触摸第一幅图像时,在4幅图像中,在“取消”操作时,叠加效果将应用,然后消失,这很好,但是当我尝试对第二幅图像执行相同操作时,第一幅图像的原始图像将应用于第二幅图像


为什么会这样,如何解决

您是否尝试过此“view.invalidate();”@AliImran我需要在何处添加此内容?在您的触摸事件结束时。是的,我也尝试过,但不起作用,还有其他解决方案吗?