The following code shows how to Create FrameLayout with TouchDelegate.
/*from w ww . ja va 2 s . c o m*/ import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; import android.view.Gravity; import android.view.TouchDelegate; import android.widget.CheckBox; import android.widget.FrameLayout; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TouchDelegateLayout layout = new TouchDelegateLayout(this); setContentView(layout); } } class TouchDelegateLayout extends FrameLayout { public TouchDelegateLayout(Context context) { super(context); init(context); } public TouchDelegateLayout(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public TouchDelegateLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context); } private CheckBox mButton; private void init(Context context) { mButton = new CheckBox(context); mButton.setText("Tap Anywhere"); LayoutParams lp = new FrameLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER); addView(mButton, lp); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { if (w != oldw || h != oldh) { Rect bounds = new Rect(0, 0, w, h); TouchDelegate delegate = new TouchDelegate(bounds, mButton); setTouchDelegate(delegate); } } }