android 触摸委托扩展view的触摸面积

"Little things make big things happen." – John Wooden

TouchDelegate 触摸委派,android提供了这么一个精巧的类,实在让人喜爱。当我们需要放大或缩小一个view的触摸区域时,可以用到它。

注意:
1:不能放大到这个view的父控件之外去。不然父控件之外的区域就无效了。
2:一个父控件只能设置一个触摸委派到子view上,设置多个的话,最后一个设置生效。

代码和布局如下,很简单,就不需要多讲解了。

public class Main3Activity extends Activity {
    private LinearLayout ll;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        ll= (LinearLayout) findViewById(R.id.ll);
        ll.post(new Runnable() {
            @Override
            public void run() {
                Button button = (Button) findViewById(R.id.button);
                Rect rect=new Rect();
//获取button的触摸区域,传入一个空的矩形对象,该方法会对空的矩形对象进行赋值
                button.getHitRect(rect);
                rect.right+=200;
                rect.bottom+=200;
// 创建TouchDelegate 对象,触摸矩形区域,和view
                TouchDelegate touchDelegate=new TouchDelegate(rect,button);
// 通过父布局设置view的触摸委托
                ll.setTouchDelegate(touchDelegate);
                button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Log.e("--->","test");
                    }
                });

            }
        });
    }



    

你可能感兴趣的:(android 触摸委托扩展view的触摸面积)