Create FrameLayout with TouchDelegate
Description
The following code shows how to Create FrameLayout with TouchDelegate.
Example
//from w w w . j av a2s. c om
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);
}
}
}