Android view.getDrawingCache()未刷新原始图像
我在一个屏幕上有4个图像。 我试图在原始图像的顶部覆盖位图。代码如下: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
@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我需要在何处添加此内容?在您的触摸事件结束时。是的,我也尝试过,但不起作用,还有其他解决方案吗?