frydsh 发表于 2013-1-3 17:00:34

Android – Using TouchDelegate

Android – Using TouchDelegate

<div class="postText"><div id="cnblogs_post_body">      TouchDelegates in Android allow to increase the touch area of a View, e.g. Button. This is very useful if you want to make it easier for the user to touch your button.
      Here is a small example for the usage of a touch delegate. The layout has the ID root and contains a button with the ID delegated_button.
      
<div class="cnblogs_code">kage de.vogella.android.touchdelegate; import android.app.Activity;import android.graphics.Rect;import android.os.Bundle;import android.view.TouchDelegate;import android.view.View;import android.widget.Button; public class MainActivity extends Activity {    private Button mButton;   /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.main);      mButton = (Button) findViewById(R.id.delegated_button);      View parent = findViewById(R.id.root);      parent.post(new Runnable() {            public void run() {                // Post in the parent's message queue to make sure the parent                // lays out its children before we call getHitRect()                Rect delegateArea = new Rect();                Button delegate = mButton;                delegate.getHitRect(delegateArea);                delegateArea.top -= 600;                delegateArea.bottom += 600;                delegateArea.left -= 600;                delegateArea.right += 600;                TouchDelegate expandedArea = new TouchDelegate(delegateArea,                        delegate);                // give the delegate to an ancestor of the view we're                // delegating the                // area to                if (View.class.isInstance(delegate.getParent())) {                  ((View) delegate.getParent())                            .setTouchDelegate(expandedArea);                }            };      });    }
页: [1]
查看完整版本: Android – Using TouchDelegate