/** * Show this button at the specific location. If this button isn't attached to any parent view * yet, it will be add to activity's root view. If not, it will just update the location. * * @param parent The parent view. Should be {@link FrameLayout} or {@link RelativeLayout} * @param x The x value of anchor point. * @param y The y value of anchor point. * @param gravity The gravity apply with this button. * @see Gravity */ public void show(ViewGroup parent, int x, int y, int gravity) { if (getParent() == null) { ViewGroup.LayoutParams params = parent.generateLayoutParams(null); params.width = mBackground.getIntrinsicWidth(); params.height = mBackground.getIntrinsicHeight(); updateParams(x, y, gravity, params); parent.addView(this, params); } else updateLocation(x, y, gravity); }
/** * Show this button at the specific location. If this button isn't attached to any parent view * yet, it will be add to activity's root view. If not, it will just update the location. * * @param activity The activity that this button will be attached to. * @param x The x value of anchor point. * @param y The y value of anchor point. * @param gravity The gravity apply with this button. * @see Gravity */ public void show(Activity activity, int x, int y, int gravity) { if (getParent() == null) { FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( mBackground.getIntrinsicWidth(), mBackground.getIntrinsicHeight()); updateParams(x, y, gravity, params); activity.getWindow().addContentView(this, params); } else updateLocation(x, y, gravity); }
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(mBackground.getIntrinsicWidth(), mBackground.getIntrinsicHeight()); }