Java 类android.view.View.OnLayoutChangeListener 实例源码

项目:chromium-for-android-56-debug-video    文件:CustomTabBottomBarDelegate.java   
private void hideBottomBar() {
    if (mBottomBarView == null) return;
    ((ViewGroup) mBottomBarView.getParent()).removeView(mBottomBarView);
    FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    lp.gravity = Gravity.BOTTOM;
    final ViewGroup compositorView = mActivity.getCompositorViewHolder();
    compositorView.addView(mBottomBarView, lp);
    compositorView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            compositorView.removeOnLayoutChangeListener(this);
            mBottomBarView.animate().alpha(0f).translationY(mBottomBarView.getHeight())
                    .setInterpolator(BakedBezierInterpolator.TRANSFORM_CURVE)
                    .setDuration(SLIDE_ANIMATION_DURATION_MS)
                    .withEndAction(new Runnable() {
                        @Override
                        public void run() {
                            ((ViewGroup) mBottomBarView.getParent()).removeView(mBottomBarView);
                            mBottomBarView = null;
                        }
                    }).start();
        }
    });
}
项目:chromium-for-android-56-debug-video    文件:FocusAnimator.java   
/**
 * Constructs the {@link FocusAnimator}.
 *
 * To get the correct values to animate between, this should be called immediately before the
 * children of the layout are remeasured.
 *
 * @param layout       Layout being animated.
 * @param focusedChild Child being focused, or null if none is being focused.
 * @param callback     Callback to run when children are in the correct places.
 */
public FocusAnimator(
        LinearLayout layout, @Nullable View focusedChild, final Runnable callback) {
    mLayout = layout;
    mFocusedChild = focusedChild;
    mInitialNumberOfChildren = mLayout.getChildCount();
    mInitialTops = calculateChildTops();

    // Add a listener to know when Android has done another measurement pass.  The listener
    // automatically removes itself to prevent triggering the animation multiple times.
    mLayout.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            mLayout.removeOnLayoutChangeListener(this);
            startAnimator(callback);
        }
    });
}
项目:AndroidChromium    文件:CustomTabBottomBarDelegate.java   
private void hideBottomBar() {
    if (mBottomBarView == null) return;
    ((ViewGroup) mBottomBarView.getParent()).removeView(mBottomBarView);
    FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    lp.gravity = Gravity.BOTTOM;
    final ViewGroup compositorView = mActivity.getCompositorViewHolder();
    compositorView.addView(mBottomBarView, lp);
    compositorView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            compositorView.removeOnLayoutChangeListener(this);
            mBottomBarView.animate().alpha(0f).translationY(mBottomBarView.getHeight())
                    .setInterpolator(BakedBezierInterpolator.TRANSFORM_CURVE)
                    .setDuration(SLIDE_ANIMATION_DURATION_MS)
                    .withEndAction(new Runnable() {
                        @Override
                        public void run() {
                            ((ViewGroup) mBottomBarView.getParent()).removeView(mBottomBarView);
                            mBottomBarView = null;
                        }
                    }).start();
        }
    });
}
项目:AndroidChromium    文件:FocusAnimator.java   
/**
 * Constructs the {@link FocusAnimator}.
 *
 * To get the correct values to animate between, this should be called immediately before the
 * children of the layout are remeasured.
 *
 * @param layout       Layout being animated.
 * @param focusedChild Child being focused, or null if none is being focused.
 * @param callback     Callback to run when children are in the correct places.
 */
public FocusAnimator(
        LinearLayout layout, @Nullable View focusedChild, final Runnable callback) {
    mLayout = layout;
    mFocusedChild = focusedChild;
    mInitialNumberOfChildren = mLayout.getChildCount();
    mInitialTops = calculateChildTops();

    // Add a listener to know when Android has done another measurement pass.  The listener
    // automatically removes itself to prevent triggering the animation multiple times.
    mLayout.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            mLayout.removeOnLayoutChangeListener(this);
            startAnimator(callback);
        }
    });
}
项目:365browser    文件:CustomTabBottomBarDelegate.java   
private void showRemoteViews(RemoteViews remoteViews) {
    final View inflatedView = remoteViews.apply(mActivity, getBottomBarView());
    if (mClickableIDs != null && mClickPendingIntent != null) {
        for (int id: mClickableIDs) {
            if (id < 0) return;
            View view = inflatedView.findViewById(id);
            if (view != null) view.setOnClickListener(mBottomBarClickListener);
        }
    }
    getBottomBarView().addView(inflatedView, 1);
    inflatedView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            inflatedView.removeOnLayoutChangeListener(this);
            mFullscreenManager.setBottomControlsHeight(v.getHeight());
        }
    });
}
项目:365browser    文件:FocusAnimator.java   
/**
 * Constructs the {@link FocusAnimator}.
 *
 * To get the correct values to animate between, this should be called immediately before the
 * children of the layout are remeasured.
 *
 * @param layout       Layout being animated.
 * @param focusedChild Child being focused, or null if none is being focused.
 * @param callback     Callback to run when children are in the correct places.
 */
public FocusAnimator(
        LinearLayout layout, @Nullable View focusedChild, final Runnable callback) {
    mLayout = layout;
    mFocusedChild = focusedChild;
    mInitialNumberOfChildren = mLayout.getChildCount();
    mInitialTops = calculateChildTops();

    // Add a listener to know when Android has done another measurement pass.  The listener
    // automatically removes itself to prevent triggering the animation multiple times.
    mLayout.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            mLayout.removeOnLayoutChangeListener(this);
            startAnimator(callback);
        }
    });
}
项目:android-wear-gestures-recognition    文件:testActivity.java   
/**
 * Initialises the chart and sets the correct radio button.  This is 
 * called from onCreate() as well as from onRadioButtonClicked().
 *
 */
private void initChart()
{
    final ChartSurfaceView csv
            = (ChartSurfaceView) findViewById(R.id.chartView);
    Chart3D chart = null;
    chart = Charts.createDemoScatterChart(-1.0, -1.0, -1.0);
    csv.setChart(chart);

    // here we add a listener that will zoom-to-fit the new chart when
    // the layout changes...
    csv.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right,
                                   int bottom, int oldLeft, int oldTop, int oldRight,
                                   int oldBottom) {
            csv.zoomToFit(right - left, bottom - top);
        }
    });

}
项目:SpunkyCharts    文件:TraditionalChartFragment.java   
private void 
_setPriceAxisOnLayoutChangeListener(){            
    _pAxisLayoutChngLstnr = new OnLayoutChangeListener(){        
                                @Override
                                public void 
                                onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, 
                                        int oldTop, int oldRight, int oldBottom){     
                                    for( BaseChartFragmentA tmp = getTopOfStack(); 
                                         tmp != getBaseOfStack();     
                                         tmp = tmp.getLastLinkOfStack())
                                         {                    
                                             tmp.getView()
                                                .findViewById(R.id.chart_right_panel_spacer)
                                                .setLayoutParams( new LinearLayout.LayoutParams(right-left, 
                                                    LinearLayout.LayoutParams.MATCH_PARENT) );
                                         }                
                                }    
                            };

    ((LinearLayout)(_myViewGroup.findViewById(R.id.chart_right_panel_holder)))
        .addOnLayoutChangeListener(_pAxisLayoutChngLstnr);
}
项目:SpunkyCharts    文件:TraditionalChartFragment.java   
private void 
_syncPanels(){
    final TextView tv = (TextView)_rightPanel.findViewById(R.id.xAxis_mirror);        
    final int innerHeight = getResources().getDimensionPixelSize(R.dimen.chart_frag_trad_inner_axis_height);

    _xAxis.addOnLayoutChangeListener( new OnLayoutChangeListener(){ 
                                          /* synch X-Axis heights */
                                          @Override
                                          public void 
                                          onLayoutChange(View v, int left, int top, int right, int bottom, 
                                                  int oldLeft, int oldTop, int oldRight, int oldBottom){
                                              tv.setLayoutParams( new LinearLayout.LayoutParams(
                                                  LinearLayout.LayoutParams.WRAP_CONTENT, 
                                                  (int)((bottom-top)+ innerHeight) ) );
                                              _rightPanel.invalidate();                    
                                          }                
                                      } );     
}
项目:SpunkyCharts    文件:PriceByVolumeChartFragment.java   
private void 
_syncPanels(){
    final TextView tv = (TextView)_rightPanel.findViewById(R.id.xAxis_mirror);

    _xAxis.addOnLayoutChangeListener(
        new OnLayoutChangeListener(){ /* synch X-Axis heights */
            @Override
            public void 
            onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, 
                int oldRight, int oldBottom){
                    tv.setLayoutParams( new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
                        (int)(bottom-top)) );                    
                    _rightPanel.invalidate();                    
            }                
        } 
    );     
}
项目:co_nomad    文件:PanAndZoomListener.java   
PanZoomCalculator(View container, View child, int anchor) {
    // Initialize class fields
    currentPan = new PointF(0, 0);
    currentZoom = 1f;
    ;
    this.window = container;
    this.child = child;
    matrix = new Matrix();
    this.anchor = anchor;
    onPanZoomChanged();
    this.child.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        // This catches when the image bitmap changes, for some reason
        // it doesn't recurse

        public void onLayoutChange(View v, int left, int top,
                int right, int bottom, int oldLeft, int oldTop,
                int oldRight, int oldBottom) {
            onPanZoomChanged();
        }
    });
}
项目:q-mail    文件:SecurityInfoDialog.java   
private void prepareIconAnimation() {
    authenticationText.setAlpha(0.0f);
    trustText.setAlpha(0.0f);

    dialogView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View view, int i, int i1, int i2, int i3, int i4, int i5, int i6, int i7) {
            float halfVerticalPixelDifference = (trustIconFrame.getY() - authenticationIconFrame.getY()) / 2.0f;
            authenticationIconFrame.setTranslationY(halfVerticalPixelDifference);
            trustIconFrame.setTranslationY(-halfVerticalPixelDifference);

            authenticationIconFrame.animate().translationY(0)
                    .setStartDelay(ICON_ANIM_DELAY)
                    .setDuration(ICON_ANIM_DURATION)
                    .setInterpolator(new AccelerateDecelerateInterpolator())
                    .start();
            trustIconFrame.animate().translationY(0)
                    .setStartDelay(ICON_ANIM_DELAY)
                    .setDuration(ICON_ANIM_DURATION)
                    .setInterpolator(new AccelerateDecelerateInterpolator())
                    .start();
            authenticationText.animate().alpha(1.0f).setStartDelay(ICON_ANIM_DELAY + ICON_ANIM_DURATION).start();
            trustText.animate().alpha(1.0f).setStartDelay(ICON_ANIM_DELAY + ICON_ANIM_DURATION).start();

            view.removeOnLayoutChangeListener(this);
        }
    });
}
项目:chromium-for-android-56-debug-video    文件:SnackbarView.java   
void show() {
    addToParent();
    mView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            mView.removeOnLayoutChangeListener(this);
            mView.setTranslationY(mView.getHeight() + getLayoutParams().bottomMargin);
            Animator animator = ObjectAnimator.ofFloat(mView, View.TRANSLATION_Y, 0);
            animator.setInterpolator(new DecelerateInterpolator());
            animator.setDuration(mAnimationDuration);
            startAnimatorOnSurfaceView(animator);
        }
    });
}
项目:boohee_v5.6    文件:SearchView.java   
@TargetApi(11)
private void addOnLayoutChangeListenerToDropDownAnchorSDK11() {
    this.mDropDownAnchor.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
            SearchView.this.adjustDropDownSizeAndPosition();
        }
    });
}
项目:K9-MailClient    文件:CryptoInfoDialog.java   
private void prepareIconAnimation() {
    topText.setAlpha(0.0f);
    bottomText.setAlpha(0.0f);

    dialogView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View view, int i, int i1, int i2, int i3, int i4, int i5, int i6, int i7) {
            float halfVerticalPixelDifference = (bottomIconFrame.getY() - topIconFrame.getY()) / 2.0f;
            topIconFrame.setTranslationY(halfVerticalPixelDifference);
            bottomIconFrame.setTranslationY(-halfVerticalPixelDifference);

            topIconFrame.animate().translationY(0)
                    .setStartDelay(ICON_ANIM_DELAY)
                    .setDuration(ICON_ANIM_DURATION)
                    .setInterpolator(new AccelerateDecelerateInterpolator())
                    .start();
            bottomIconFrame.animate().translationY(0)
                    .setStartDelay(ICON_ANIM_DELAY)
                    .setDuration(ICON_ANIM_DURATION)
                    .setInterpolator(new AccelerateDecelerateInterpolator())
                    .start();
            topText.animate().alpha(1.0f).setStartDelay(ICON_ANIM_DELAY + ICON_ANIM_DURATION).start();
            bottomText.animate().alpha(1.0f).setStartDelay(ICON_ANIM_DELAY + ICON_ANIM_DURATION).start();

            view.removeOnLayoutChangeListener(this);
        }
    });
}
项目:AndroidChromium    文件:SnackbarView.java   
void show() {
    addToParent();
    mView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            mView.removeOnLayoutChangeListener(this);
            mView.setTranslationY(mView.getHeight() + getLayoutParams().bottomMargin);
            Animator animator = ObjectAnimator.ofFloat(mView, View.TRANSLATION_Y, 0);
            animator.setInterpolator(new DecelerateInterpolator());
            animator.setDuration(mAnimationDuration);
            startAnimatorOnSurfaceView(animator);
        }
    });
}
项目:intellij-ce-playground    文件:NotificationStudioActivity.java   
private void initPreviewScroller() {

        MaxHeightScrollView preview = (MaxHeightScrollView) findViewById(R.id.preview_scroller);
        if (preview == null)
            return;
        final int margin = ((ViewGroup.MarginLayoutParams) preview.getLayoutParams()).bottomMargin;
        preview.addOnLayoutChangeListener(new OnLayoutChangeListener(){
            public void onLayoutChange(View v, int left, int top, int right, int bottom,
                    int oldLeft, int oldTop, int oldRight, int oldBottom) {
                // animate preview height changes
                if (oldBottom != bottom) {
                    final View e = findViewById(R.id.editors);
                    final int y = bottom + margin;
                    e.animate()
                        .translationY(y - oldBottom)
                        .setListener(new AnimatorListenerAdapter() {
                            public void onAnimationEnd(Animator animation) {
                                FrameLayout.LayoutParams lp = (LayoutParams) e.getLayoutParams();
                                lp.topMargin = y;
                                e.setTranslationY(0);
                                e.setLayoutParams(lp);
                            }
                        });
                }
            }});

        // limit the max height for preview, leave room for editors + soft keyboard
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        float actualHeight = dm.heightPixels / dm.ydpi;
        float pct = actualHeight < 3.5 ? .32f :
                    actualHeight < 4 ? .35f :
                    .38f;
        preview.setMaxHeight((int)(dm.heightPixels * pct));
    }
项目:FMTech    文件:SearchView.java   
@TargetApi(11)
private void addOnLayoutChangeListenerToDropDownAnchorSDK11()
{
  this.mDropDownAnchor.addOnLayoutChangeListener(new View.OnLayoutChangeListener()
  {
    public final void onLayoutChange(View paramAnonymousView, int paramAnonymousInt1, int paramAnonymousInt2, int paramAnonymousInt3, int paramAnonymousInt4, int paramAnonymousInt5, int paramAnonymousInt6, int paramAnonymousInt7, int paramAnonymousInt8)
    {
      SearchView.this.adjustDropDownSizeAndPosition();
    }
  });
}
项目:365browser    文件:SnackbarView.java   
void show() {
    addToParent();
    mView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            mView.removeOnLayoutChangeListener(this);
            mView.setTranslationY(mView.getHeight() + getLayoutParams().bottomMargin);
            Animator animator = ObjectAnimator.ofFloat(mView, View.TRANSLATION_Y, 0);
            animator.setInterpolator(new DecelerateInterpolator());
            animator.setDuration(mAnimationDuration);
            startAnimatorOnSurfaceView(animator);
        }
    });
}
项目:365browser    文件:DropdownPopupWindow.java   
/**
 * Creates an DropdownPopupWindow with specified parameters.
 * @param context Application context.
 * @param anchorView Popup view to be anchored.
 */
public DropdownPopupWindow(Context context, View anchorView) {
    super(context, null, 0, R.style.DropdownPopupWindow);
    mContext = context;
    mAnchorView = anchorView;

    mAnchorView.setId(R.id.dropdown_popup_window);
    mAnchorView.setTag(this);

    mLayoutChangeListener = new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            if (v == mAnchorView) DropdownPopupWindow.this.show();
        }
    };
    mAnchorView.addOnLayoutChangeListener(mLayoutChangeListener);

    super.setOnDismissListener(new PopupWindow.OnDismissListener() {
        @Override
        public void onDismiss() {
            if (mOnDismissListener != null) {
                mOnDismissListener.onDismiss();
            }
            mAnchorView.removeOnLayoutChangeListener(mLayoutChangeListener);
            mAnchorView.setTag(null);
        }
    });

    setAnchorView(mAnchorView);
    Rect originalPadding = new Rect();
    getBackground().getPadding(originalPadding);
    setVerticalOffset(-originalPadding.top);
}
项目:oschina-app    文件:CommonDialog.java   
@SuppressLint("InflateParams")
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
protected void init(final Context context) {
    setCancelable(false);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    content = LayoutInflater.from(context).inflate(
            R.layout.v2_dialog_common, null);
    headerVw = (DialogTitleView) content.findViewById(R.id.dialog_header);
    container = (FrameLayout) content.findViewById(R.id.content_container);
    barDivider = content.findViewById(R.id.button_bar_divider);
    buttonDivider = content.findViewById(R.id.button_divder);
    positiveBt = (Button) content.findViewById(R.id.positive_bt);
    negativeBt = (Button) content.findViewById(R.id.negative_bt);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
        // TODO Check content view height and change height
    } else {
        content.addOnLayoutChangeListener(new OnLayoutChangeListener() {

            @Override
            public void onLayoutChange(View v, int left, int top,
                    int right, int bottom, int oldLeft, int oldTop,
                    int oldRight, int oldBottom) {
                int height = v.getHeight();
                int contentHeight = container.getHeight();
                int winHeight = BaseApplication.getDisplaySize()[1];
                int needHeight = height - winHeight * 8 / 10;
                if (needHeight > 0) {
                    container
                            .setLayoutParams(new LinearLayout.LayoutParams(
                                    LayoutParams.MATCH_PARENT,
                                    contentHeight - needHeight));
                }
            }
        });
    }
    super.setContentView(content);
}
项目:testApp1_android    文件:DKaraoke.java   
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.actions, menu);
    mSearchView = (SearchView) MenuItemCompat.getActionView(menu
            .findItem(R.id.action_search));
    mSearchView.setOnQueryTextListener(mOnQueryTextListener);
    mSearchView.addOnLayoutChangeListener(new OnLayoutChangeListener() {

        @Override
        public void onLayoutChange(View v, int left, int top, int right,
                int bottom, int oldLeft, int oldTop, int oldRight,
                int oldBottom) {
            SearchView searchView = (SearchView) v;
            if (searchView.isIconfiedByDefault()
                    && !searchView.isIconified()) {
                // search got expanded from icon to search box, hide tabs to
                // make space
                getActionBar().getCustomView().setVisibility(View.GONE);
            } else {
                getActionBar().getCustomView().setVisibility(View.VISIBLE);
            }
        }

    });
    return true;
}
项目:ima_intellj    文件:CommonDialog.java   
@SuppressLint("InflateParams")
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
protected void init(final Context context) {
    setCancelable(false);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    content = LayoutInflater.from(context).inflate(
            R.layout.v2_dialog_common, null);
    headerVw = (DialogTitleView) content.findViewById(R.id.dialog_header);
    container = (FrameLayout) content.findViewById(R.id.content_container);
    barDivider = content.findViewById(R.id.button_bar_divider);
    buttonDivider = content.findViewById(R.id.button_divder);
    positiveBt = (Button) content.findViewById(R.id.positive_bt);
    negativeBt = (Button) content.findViewById(R.id.negative_bt);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
        // TODO Check content view height and change height

    } else {
        content.addOnLayoutChangeListener(new OnLayoutChangeListener() {

            @Override
            public void onLayoutChange(View v, int left, int top,
                    int right, int bottom, int oldLeft, int oldTop,
                    int oldRight, int oldBottom) {
                int height = v.getHeight();
                int contentHeight = container.getHeight();
                int winHeight = BaseApplication.getDisplaySize()[1];
                int needHeight = height - winHeight * 8 / 10;
                if (needHeight > 0) {
                    container
                            .setLayoutParams(new LinearLayout.LayoutParams(
                                    LayoutParams.MATCH_PARENT,
                                    contentHeight - needHeight));
                }
            }
        });
    }
    super.setContentView(content);
}
项目:android-chromium-view    文件:AutofillPopup.java   
/**
 * Creates an AutofillWindow with specified parameters.
 * @param context Application context.
 * @param viewAndroidDelegate View delegate used to add and remove views.
 * @param autofillCallback A object that handles the calls to the native AutofillPopupView.
 */
public AutofillPopup(Context context, ViewAndroidDelegate viewAndroidDelegate,
        AutofillPopupDelegate autofillCallback) {
    super(context, null, 0, R.style.AutofillPopupWindow);
    mContext = context;
    mViewAndroidDelegate = viewAndroidDelegate ;
    mAutofillCallback = autofillCallback;

    setOnItemClickListener(this);

    mAnchorView = mViewAndroidDelegate.acquireAnchorView();
    mAnchorView.setId(R.id.autofill_popup_window);
    mAnchorView.setTag(this);

    mViewAndroidDelegate.setAnchorViewPosition(mAnchorView, mAnchorX, mAnchorY, mAnchorWidth,
            mAnchorHeight);

    mLayoutChangeListener = new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            if (v == mAnchorView) AutofillPopup.this.show();
        }
    };

    mAnchorView.addOnLayoutChangeListener(mLayoutChangeListener);
    setAnchorView(mAnchorView);
}
项目:android-chromium    文件:AutofillPopup.java   
/**
 * Creates an AutofillWindow with specified parameters.
 * @param context Application context.
 * @param viewAndroidDelegate View delegate used to add and remove views.
 * @param autofillCallback A object that handles the calls to the native AutofillPopupView.
 */
public AutofillPopup(Context context, ViewAndroidDelegate viewAndroidDelegate,
        AutofillPopupDelegate autofillCallback) {
    super(context, null, 0, R.style.AutofillPopupWindow);
    mContext = context;
    mViewAndroidDelegate = viewAndroidDelegate ;
    mAutofillCallback = autofillCallback;

    setOnItemClickListener(this);

    mAnchorView = mViewAndroidDelegate.acquireAnchorView();
    mAnchorView.setId(R.id.autofill_popup_window);
    mAnchorView.setTag(this);

    mViewAndroidDelegate.setAnchorViewPosition(mAnchorView, mAnchorX, mAnchorY, mAnchorWidth,
            mAnchorHeight);

    mLayoutChangeListener = new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            if (v == mAnchorView) AutofillPopup.this.show();
        }
    };

    mAnchorView.addOnLayoutChangeListener(mLayoutChangeListener);
    setAnchorView(mAnchorView);
}
项目:chromium_webview    文件:AutofillPopup.java   
/**
 * Creates an AutofillWindow with specified parameters.
 * @param context Application context.
 * @param viewAndroidDelegate View delegate used to add and remove views.
 * @param autofillCallback A object that handles the calls to the native AutofillPopupView.
 */
public AutofillPopup(Context context, ViewAndroidDelegate viewAndroidDelegate,
        AutofillPopupDelegate autofillCallback) {
    super(context, null, 0, R.style.AutofillPopupWindow);
    mContext = context;
    mViewAndroidDelegate = viewAndroidDelegate;
    mAutofillCallback = autofillCallback;

    setOnItemClickListener(this);

    mAnchorView = mViewAndroidDelegate.acquireAnchorView();
    mAnchorView.setId(R.id.autofill_popup_window);
    mAnchorView.setTag(this);

    mViewAndroidDelegate.setAnchorViewPosition(mAnchorView, mAnchorX, mAnchorY, mAnchorWidth,
            mAnchorHeight);

    mLayoutChangeListener = new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            if (v == mAnchorView) AutofillPopup.this.show();
        }
    };

    mAnchorView.addOnLayoutChangeListener(mLayoutChangeListener);
    setAnchorView(mAnchorView);
}
项目:cordova-android-chromium    文件:AutofillPopup.java   
/**
 * Creates an AutofillWindow with specified parameters.
 * @param context Application context.
 * @param viewAndroidDelegate View delegate used to add and remove views.
 * @param autofillCallback A object that handles the calls to the native AutofillPopupView.
 */
public AutofillPopup(Context context, ViewAndroidDelegate viewAndroidDelegate,
        AutofillPopupDelegate autofillCallback) {
    super(context, null, 0, R.style.AutofillPopupWindow);
    mContext = context;
    mViewAndroidDelegate = viewAndroidDelegate ;
    mAutofillCallback = autofillCallback;

    setOnItemClickListener(this);

    mAnchorView = mViewAndroidDelegate.acquireAnchorView();
    mAnchorView.setId(R.id.autofill_popup_window);
    mAnchorView.setTag(this);

    mViewAndroidDelegate.setAnchorViewPosition(mAnchorView, mAnchorX, mAnchorY, mAnchorWidth,
            mAnchorHeight);

    mLayoutChangeListener = new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom,
                int oldLeft, int oldTop, int oldRight, int oldBottom) {
            if (v == mAnchorView) AutofillPopup.this.show();
        }
    };

    mAnchorView.addOnLayoutChangeListener(mLayoutChangeListener);
    setAnchorView(mAnchorView);
}
项目:AndroidViewHelper    文件:ViewWrapper.java   
/**
* @see View#addOnLayoutChangeListener(OnLayoutChangeListener)
*/
 public W addOnLayoutChangeListener(OnLayoutChangeListener listener) {
     mView.addOnLayoutChangeListener(listener);
     return (W)this;
 }
项目:AndroidViewHelper    文件:ViewWrapper.java   
/**
* @see View#removeOnLayoutChangeListener(OnLayoutChangeListener)
*/
 public W removeOnLayoutChangeListener(OnLayoutChangeListener listener) {
     mView.removeOnLayoutChangeListener(listener);
     return (W)this;
 }
项目:AbacusUtil    文件:Observer.java   
public Disposable onLayoutChange(final OnLayoutChangeListener onNext) {
    return onLayoutChange(onNext, Fu.ON_ERROR_MISSING);
}
项目:AbacusUtil    文件:Observer.java   
public Disposable onLayoutChange(final OnLayoutChangeListener onNext, final Consumer<? super Exception> onError) {
    return onLayoutChange(onNext, onError, Fu.EMPTY_ACTION);
}
项目:AbacusUtil    文件:Observer.java   
public Disposable onLayoutChange(final OnLayoutChangeListener onNext, final Consumer<? super Exception> onError, final Runnable onComplete) {
    N.requireNonNull(onNext, "onNext");
    N.requireNonNull(onError, "onError");
    N.requireNonNull(onComplete, "onComplete");

    dispatcher.append(new DispatcherBase<Object>(onError, onComplete) {
        @Override
        public void onNext(Object param) {
            final Tuple9<View, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer> tmp = (Tuple9<View, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer>) param;

            if (Fu.isUiThread()) {
                onNext.onLayoutChange(tmp._1, tmp._2, tmp._3, tmp._4, tmp._5, tmp._6, tmp._7, tmp._8, tmp._9);
            } else {
                UIExecutor.execute(new Runnable() {
                    @Override
                    public void run() {
                        onNext.onLayoutChange(tmp._1, tmp._2, tmp._3, tmp._4, tmp._5, tmp._6, tmp._7, tmp._8, tmp._9);
                    }
                });
            }
        }
    });

    final OnLayoutChangeListener onAttachStateChangeListener = new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
            dispatcher.onNext(Tuple.of(v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom));
        };
    };

    _view.addOnLayoutChangeListener(onAttachStateChangeListener);

    disposeActions.add(new Runnable() {
        @Override
        public void run() {
            _view.removeOnLayoutChangeListener(onAttachStateChangeListener);
        }
    });

    return this;
}
项目:AbacusUtil    文件:Observer.java   
public Disposable onLayoutChange(final Consumer<? super Tuple9<View, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer>> onNext,
        final Consumer<? super Exception> onError, final Runnable onComplete) {
    N.requireNonNull(onNext, "onNext");
    N.requireNonNull(onError, "onError");
    N.requireNonNull(onComplete, "onComplete");

    dispatcher.append(new DispatcherBase<Object>(onError, onComplete) {
        @Override
        public void onNext(Object param) {
            final Tuple9<View, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer> tmp = (Tuple9<View, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer>) param;

            if (Fu.isUiThread()) {
                onNext.accept(tmp);
            } else {
                UIExecutor.execute(new Runnable() {
                    @Override
                    public void run() {
                        onNext.accept(tmp);
                    }
                });
            }
        }
    });

    final OnLayoutChangeListener onAttachStateChangeListener = new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
            dispatcher.onNext(Tuple.of(v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom));
        };
    };

    _view.addOnLayoutChangeListener(onAttachStateChangeListener);

    disposeActions.add(new Runnable() {
        @Override
        public void run() {
            _view.removeOnLayoutChangeListener(onAttachStateChangeListener);
        }
    });

    return this;
}
项目:vlc_android_win    文件:VideoPlayerActivity.java   
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void startPlayback() {
    /* start playback only when audio service and both surfaces are ready */
    if (mPlaybackStarted || mService == null)
        return;

    LibVLC().setOnHardwareAccelerationError(this);
    final IVLCVout vlcVout = mService.getVLCVout();
    if (mPresentation == null) {
        vlcVout.setVideoView(mSurfaceView);
        if (mSubtitlesSurfaceView.getVisibility() != View.GONE)
            vlcVout.setSubtitlesView(mSubtitlesSurfaceView);
    } else {
        vlcVout.setVideoView(mPresentation.mSurfaceView);
        if (mSubtitlesSurfaceView.getVisibility() != View.GONE)
            vlcVout.setSubtitlesView(mPresentation.mSubtitlesSurfaceView);
    }
    vlcVout.addCallback(this);
    vlcVout.attachViews();

    mPlaybackStarted = true;

    if (AndroidUtil.isHoneycombOrLater()) {
        if (mOnLayoutChangeListener == null) {
            mOnLayoutChangeListener = new View.OnLayoutChangeListener() {
                private final Runnable mRunnable = new Runnable() {
                    @Override
                    public void run() {
                        changeSurfaceLayout();
                    }
                };
                @Override
                public void onLayoutChange(View v, int left, int top, int right,
                                           int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                    if (left != oldLeft || top != oldTop || right != oldRight || bottom != oldBottom) {
                        /* changeSurfaceLayout need to be called after the layout changed */
                        mHandler.removeCallbacks(mRunnable);
                        mHandler.post(mRunnable);
                    }
                }
            };
        }
        mSurfaceFrame.addOnLayoutChangeListener(mOnLayoutChangeListener);
    }
    changeSurfaceLayout();

    if (mMediaRouter != null) {
        // Listen for changes to media routes.
        mediaRouterAddCallback(true);
    }

    loadMedia();

    mSurfaceView.setKeepScreenOn(true);

    // Add any selected subtitle file from the file picker
    if(mSubtitleSelectedFiles.size() > 0) {
        for(String file : mSubtitleSelectedFiles) {
            Log.i(TAG, "Adding user-selected subtitle " + file);
            mService.addSubtitleTrack(file);
        }
    }

    // Set user playback speed
    mService.setRate(mSettings.getFloat(PreferencesActivity.VIDEO_SPEED, 1));
}
项目:Camera2    文件:TextureViewHelper.java   
public void setOnLayoutChangeListener(OnLayoutChangeListener listener) {
    mOnLayoutChangeListener = listener;
}
项目:vlc-android    文件:VideoPlayerActivity.java   
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void startPlayback() {
    /* start playback only when audio service and both surfaces are ready */
    if (mPlaybackStarted || mService == null)
        return;

    LibVLC().setOnHardwareAccelerationError(this);
    final IVLCVout vlcVout = mService.getVLCVout();
    if (mPresentation == null) {
        vlcVout.setVideoView(mSurfaceView);
        if (mSubtitlesSurfaceView.getVisibility() != View.GONE)
            vlcVout.setSubtitlesView(mSubtitlesSurfaceView);
    } else {
        vlcVout.setVideoView(mPresentation.mSurfaceView);
        if (mSubtitlesSurfaceView.getVisibility() != View.GONE)
            vlcVout.setSubtitlesView(mPresentation.mSubtitlesSurfaceView);
    }
    vlcVout.addCallback(this);
    vlcVout.attachViews();

    mPlaybackStarted = true;

    if (AndroidUtil.isHoneycombOrLater()) {
        if (mOnLayoutChangeListener == null) {
            mOnLayoutChangeListener = new View.OnLayoutChangeListener() {
                private final Runnable mRunnable = new Runnable() {
                    @Override
                    public void run() {
                        changeSurfaceLayout();
                    }
                };
                @Override
                public void onLayoutChange(View v, int left, int top, int right,
                                           int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                    if (left != oldLeft || top != oldTop || right != oldRight || bottom != oldBottom) {
                        /* changeSurfaceLayout need to be called after the layout changed */
                        mHandler.removeCallbacks(mRunnable);
                        mHandler.post(mRunnable);
                    }
                }
            };
        }
        mSurfaceFrame.addOnLayoutChangeListener(mOnLayoutChangeListener);
    }
    changeSurfaceLayout();

    if (mMediaRouter != null) {
        // Listen for changes to media routes.
        mediaRouterAddCallback(true);
    }

    loadMedia();

    mSurfaceView.setKeepScreenOn(true);

    // Add any selected subtitle file from the file picker
    if(mSubtitleSelectedFiles.size() > 0) {
        for(String file : mSubtitleSelectedFiles) {
            Log.i(TAG, "Adding user-selected subtitle " + file);
            mService.addSubtitleTrack(file);
        }
    }

    // Set user playback speed
    mService.setRate(mSettings.getFloat(PreferencesActivity.VIDEO_SPEED, 1));
}
项目:twenty48    文件:MainActivity.java   
@Override
  protected void onCreate(Bundle savedInstanceState)
  {
      super.onCreate(savedInstanceState);
      won = false;
      setTitle("2048");
      setContentView(R.layout.activity_main);
      SharedPreferences data =
          getSharedPreferences("com.jbapps.twenty48", MODE_PRIVATE);
      highScore = data.getInt("highScore", 0);
      model = new Model();
      textView1 = (TextView)findViewById(R.id.textView1);
      textView2 = (TextView)findViewById(R.id.textView2);
      textView3 = (TextView)findViewById(R.id.textView3);
      textView4 = (TextView)findViewById(R.id.textView4);
      textView5 = (TextView)findViewById(R.id.textView5);
      textView6 = (TextView)findViewById(R.id.textView6);
      textView7 = (TextView)findViewById(R.id.textView7);
      textView8 = (TextView)findViewById(R.id.textView8);
      textView9 = (TextView)findViewById(R.id.textView9);
      textView10 = (TextView)findViewById(R.id.textView10);
      textView11 = (TextView)findViewById(R.id.textView11);
      textView12 = (TextView)findViewById(R.id.textView12);
      textView13 = (TextView)findViewById(R.id.textView13);
      textView14 = (TextView)findViewById(R.id.textView14);
      textView15 = (TextView)findViewById(R.id.textView15);
      textView16 = (TextView)findViewById(R.id.textView16);
      scoreView = (TextView)findViewById(R.id.textView17);
      highScoreView = (TextView)findViewById(R.id.textView18);
      textViews = new ArrayList<TextView>();
      textViews.add(textView1);
      textViews.add(textView2);
      textViews.add(textView3);
      textViews.add(textView4);
      textViews.add(textView5);
      textViews.add(textView6);
      textViews.add(textView7);
      textViews.add(textView8);
      textViews.add(textView9);
      textViews.add(textView10);
      textViews.add(textView11);
      textViews.add(textView12);
      textViews.add(textView13);
      textViews.add(textView14);
      textViews.add(textView15);
      textViews.add(textView16);
      mDetector = new GestureDetectorCompat(this, this);
      mDetector.setOnDoubleTapListener(this);
      GridLayout gridLayout = (GridLayout) findViewById(R.id.gridLayout1);
      gridLayout.addOnLayoutChangeListener(new OnLayoutChangeListener() {
    @Override
    public void onLayoutChange(View view, int arg1, int arg2, int arg3,
            int arg4, int arg5, int arg6, int arg7, int arg8) {
        int sideLength;
        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
            sideLength = view.getWidth() / 4;
        } else {
            sideLength = view.getHeight() / 4;
        }
        for (TextView text : textViews)
        {
            text.setWidth(sideLength);
            text.setHeight(sideLength);
            text.setGravity(Gravity.CENTER);
        }
    }
});
      update();
  }
项目:rpgpack-android    文件:MapActivity.java   
@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game_toolbox_map);
    mapView = (MapView) findViewById(R.id.map);
    mapView.addOnLayoutChangeListener(new OnLayoutChangeListener() {

        @Override
        public void onLayoutChange(View v, int left, int top, int right,
                int bottom, int oldLeft, int oldTop, int oldRight,
                int oldBottom) {
            // its possible that the layout is not complete in which case
            // we will get all zero values for the positions, so ignore the
            // event
            if (left == 0 && top == 0 && right == 0 && bottom == 0) {
                return;
            }

            if (first) {
                initTest();
                createCells();
                first = false;
            }

        }
    });
    Intent intent = getIntent();
    final String[] characterAbsPaths = intent
            .getStringArrayExtra(EXTRA_CHARACTER_ABS_PATH);
    if (savedInstanceState != null) {
        characterSheets = (CharacterSheet[]) savedInstanceState
                .getParcelableArray("characterSheets");
    } else {
        characterSheets = new CharacterSheet[characterAbsPaths.length];
        if (characterAbsPaths != null) {
            Log.d("ToolboxMap", "characterAbsPath != null");
            try {
                int index = 0;
                for (String onePath : characterAbsPaths) {
                    characterSheets[index++] = JacksonInterface
                            .loadCharacterSheet(new File(onePath), false);
                }

            } catch (Throwable e) {
                e.printStackTrace();
            }
        }
    }
    mapView.setOnTouchListener(mapView);
    paintLayout = (LinearLayout) findViewById(R.id.paint_colors);
    currPaint = (ImageButton) paintLayout.getChildAt(0);
    currPaint.setImageDrawable(getResources().getDrawable(
            R.drawable.paint_pressed));

}