private void checkDrawable() {
        Drawable drawable = mView.getDrawable();
        if (mDrawable != drawable) {
            /* get the latest View size and ensure that it's been measured */
            mViewWidth = mView.getWidth();
            mViewHeight = mView.getHeight();
            if (mViewWidth > 0 && mViewHeight > 0) {
                mDrawable = drawable; // don't save until now so above is repeated until measured
                if (mDrawable != null) {
                    mDrawableWidth = mDrawable.getIntrinsicWidth();
                    mDrawableHeight = mDrawable.getIntrinsicHeight();
                    if (mDrawableWidth > 0 && mDrawableHeight > 0) { // e.g. colors don't have size
                        float widthRatio = (float) mViewWidth / mDrawableWidth;
                        float heightRatio = (float) mViewHeight / mDrawableHeight;
                        mScale = widthRatio > heightRatio ? widthRatio : heightRatio;
                    } else { // nothing to scale, ensure matrix is skipped
                        mScale = 0.0f;
                    }
                }
            } else { // don't update matrix until View is measured
                mScale = 0.0f;
            }
            reset();
        }
    }
private void checkDrawable() {
        Drawable drawable = mView.getDrawable();
        if (mDrawable != drawable) {
            
            mViewWidth = mView.getWidth();
            mViewHeight = mView.getHeight();
            if (mViewWidth > 0 && mViewHeight > 0) {
                mDrawable = drawable; 
                if (mDrawable != null) {
                    mDrawableWidth = mDrawable.getIntrinsicWidth();
                    mDrawableHeight = mDrawable.getIntrinsicHeight();
                    if (mDrawableWidth > 0 && mDrawableHeight > 0) { 
                        float widthRatio = (float) mViewWidth / mDrawableWidth;
                        float heightRatio = (float) mViewHeight / mDrawableHeight;
                        mScale = widthRatio > heightRatio ? widthRatio : heightRatio;
                    } else { 
                        mScale = 0.0f;
                    }
                }
            } else { 
                mScale = 0.0f;
            }
            reset();
        }
    }
private void checkDrawable ( ) { Drawable drawable = mView . getDrawable ( ) ; if ( mDrawable != drawable ) { /* get the latest View size and ensure that it's been measured */ mViewWidth = mView . getWidth ( ) ; mViewHeight = mView . getHeight ( ) ; if ( mViewWidth > 0 && mViewHeight > 0 ) { mDrawable = drawable ; // don't save until now so above is repeated until measured if ( mDrawable != null ) { mDrawableWidth = mDrawable . getIntrinsicWidth ( ) ; mDrawableHeight = mDrawable . getIntrinsicHeight ( ) ; if ( mDrawableWidth > 0 && mDrawableHeight > 0 ) { // e.g. colors don't have size float widthRatio = ( float ) mViewWidth / mDrawableWidth ; float heightRatio = ( float ) mViewHeight / mDrawableHeight ; mScale = widthRatio > heightRatio ? widthRatio : heightRatio ; } else { // nothing to scale, ensure matrix is skipped mScale = 0.0f ; } } } else { // don't update matrix until View is measured mScale = 0.0f ; } reset ( ) ; } }
Check if the ImageView has a new Drawable and calculate the new scaling if it does.
Check if the ImageView has a new Drawable and calculate the new scaling if it does .