Here is a picture of what I'm trying to do:

So, I want to resize a single cell while dragging resize anchors (black quads) which are ImageViews. To do this I attached custom onTouchListener to them that does next in MotionEvent.ACTION_MOVE:
- calculate drag offset
 - set cell height/width based on this offset
 - reposition anchor point by changing it's layout params
 
The outcome of this is that the cell resizes but there is some king of flicker, more like shaking left/right or up/down, by some small offset.
My guess is that the problem comes when it catches move event, then I manualy change position of anchor and then, when it catches move event again it doesn't handle that change well...or something
I have an idea to put invisible ImageViews under each anchor and do resize based on their movement but do not move that anchor while draging. Then when I relese it, it lines up with coresponding visible anchor. But this is more hacking than solution :)
And finally, does anubody know why is this happening?
EDIT: Here is the code where I'm handlign move event:
float dragY = event.getRawY() - resizePreviousPositionY;
                    LinearLayout.LayoutParams componentParams = (LinearLayout.LayoutParams)selectedComponent.layout.getLayoutParams();
                    LinearLayout parrent = (LinearLayout)selectedComponent.layout.getParent();
                    View topSibling = parrent.getChildAt(parrent.indexOfChild(selectedComponent.layout) - 1);
                    LinearLayout.LayoutParams topSiblingParams = (LinearLayout.LayoutParams)topSibling.getLayoutParams();
                    if(dragY > 0 && selectedComponent.layout.getHeight() > 100 ||
                            dragY < 0 &&  topSibling.getHeight() > 100)
                    {
                        componentParams.height = selectedComponent.layout.getHeight() - (int)dragY;
                        topSiblingParams.height = topSibling.getHeight() + (int)dragY;
                        //bottomSiblingParams.height = bottomSibling.getHeight();
                        selectedComponent.layout.setLayoutParams(componentParams);
                        repositionResizeAnchors(selectedComponent);
                    }
                    resizePreviousPositionY = event.getRawY();
and here is where I reposition it:
if(((LinearLayout)viewHolder.layout.getParent()).getOrientation() == LinearLayout.VERTICAL)
        {
            leftMargin = ((LinearLayout)viewHolder.layout.getParent()).getLeft() + 
                    viewHolder.layout.getLeft() + viewHolder.layout.getWidth()/2;
        }
        else
        {
            leftMargin = viewHolder.layout.getLeft() + viewHolder.layout.getWidth()/2;
        }
        topMargin = viewHolder.layout.getTop();
        params = (RelativeLayout.LayoutParams)resizeTop.getLayoutParams();
        params.leftMargin = leftMargin - dpToPx(resizeAnchorRadius/2);
        params.topMargin = topMargin - dpToPx(resizeAnchorRadius/2);
        resizeTop.setLayoutParams(params);