如何准确判断View的大小(ViewGroup)

时间:2016-03-09 08:18:14

标签: android android-custom-view

我想自定义一个左侧FrameLayout的ViewGroup。 可以修改framelayout的大小。 这是我的代码

@Override
public boolean onTouchEvent(MotionEvent ev) {
    final int action = MotionEventCompat.getActionMasked(ev);
    final int actionIndex = MotionEventCompat.getActionIndex(ev);

    boolean wantTouchEvents = true;
    switch (action) {
        case MotionEvent.ACTION_DOWN: {
            Log.i("action_down", "action_down");
            final float x = ev.getX();
            final float y = ev.getY();
            mInitialMotionX = x;
            mInitialMotionY = y;
            break;
        }
        case MotionEvent.ACTION_MOVE: {
            final float x = ev.getX();
            final float y = ev.getY();
            for (int i = 0; i < getChildCount(); i++) {
                View view = getChildAt(i);
                if (isDrawerView(view)) {
                    LayoutParams params = (LayoutParams) view.getLayoutParams();
                    params.width = DRAWER_WIDTH + (int) (x - mInitialMotionX);
                    view.setLayoutParams(params);
                }

            }
            break;
        }

在ontouchevent()方法中,当action_move时,我设置了framelayout的宽度。但是我无法判断我设置的宽度。因为framelayout的宽度变化不是线性的。 例如,我设置framelayout的最大宽度为300dp。 当宽度变大时,如果我快速移动x,则框架布局的宽度可以是310或330或其他。 我只想准确判断framelayout的大小。enter image description here

0 个答案:

没有答案