public void setFloatOffset(int x) {
            mOffset = x;
            int centerDiffX = mMarker.getMeasuredWidth() / 2;
            int offset = (x - centerDiffX);
            mMarker.offsetLeftAndRight(offset - mMarker.getLeft());
            //Without hardware acceleration (or API levels<11), offsetting a view seems to NOT invalidate the proper area.
            //We should calc the proper invalidate Rect but this will be for now...
            if (!(this.isHardwareAccelerated())) {
                invalidate();
            }
        }
Small FrameLayout class to hold and move the bubble around when requested
I wanted to use the {@link BalloonMarker} directly
but doing so would make some things harder to implement
(like moving the marker around, having the Marker's outline to work, etc)
caprice/ui/src/main/java/net/qiujuer/genius/ui/widget/popup/PopupIndicator.java