触摸时位图的像素在java android中变为透明

时间:2014-07-31 11:27:25

标签: android bitmap pixel ontouchevent

我有一个框架布局,有两个重叠的位图作为图像视图和触摸,触摸的像素只应该变为透明。但是整个图像变得透明。

我确实引用了类似的链接 Making Overlaid image transparent on touch in Android? 但它没有任何帮助.touchEvent的代码如下。

@Override
public boolean onTouchEvent(MotionEventevent){
startX = (int)event . getX();
startY = (int)event . getY();
switch (event . getAction())
    {
case MotionEvent . ACTION_DOWN:
    return true;
case MotionEvent . ACTION_MOVE:
    try
        {
        newOverlayBitmap = Bitmap . createBitmap(bmp . getWidth() , bmp . getHeight() , bmp . getConfig());
        for (inti = 0; i < bmp . getWidth(); i++)
            {
            for (intj = 0; j < bmp . getHeight(); j++)
                {
                if (i == startX && j == startY)
                    {
                    p = bmp . getPixel(i, j);
                    r = Color . red(p);
                    g = Color . green(p);
                    b = Color . blue(p);
                    alpha = Color . alpha(p);
                    alpha = 256 - alpha;//alpha=1
                    newOverlayBitmap . setPixel(i, j, Color . argb(alpha, r, g, b));
                    }
                }
            }

        img . setImageBitmap(newOverlayBitmap); //sets the changed overlay on the imageview
        }

    catch(Exceptione)
        {
        e . printStackTrace();
        }

    break;

case MotionEvent . ACTION_UP:
    break;

default:
    a = false;
    }

a = true;
super . onTouchEvent(event);
return a;
}

0 个答案:

没有答案