sbakhtiarov/gif-movie-view

match parent

Closed this issue · 1 comments

hi, match parent doesn't work?
is there some solution for it?

i fixed it.
I changed method onMeasure

@OverRide
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

    if (mMovie != null) {
        int movieWidth = mMovie.width();
        int movieHeight = mMovie.height();

        /*
         * Calculate horizontal scaling
         */

        float scaleH = 1f;
        int measureModeWidth = MeasureSpec.getMode(widthMeasureSpec); 
        if (measureModeWidth != MeasureSpec.UNSPECIFIED) {
            int maximumWidth = MeasureSpec.getSize(widthMeasureSpec);
            if (movieWidth > maximumWidth) {
                scaleH = (float) movieWidth / (float) maximumWidth;
            } else if (movieWidth < maximumWidth) {
                scaleH = (float) maximumWidth / (float) movieWidth;
                scaleH = 1 / scaleH;
            }
        }

        /*
         * calculate vertical scaling
         */
        float scaleW = 1f;
        int measureModeHeight = MeasureSpec.getMode(heightMeasureSpec);

        if (measureModeHeight != MeasureSpec.UNSPECIFIED) {
            int maximumHeight = MeasureSpec.getSize(heightMeasureSpec);
            if (movieHeight > maximumHeight) {
                scaleW = (float) movieHeight / (float) maximumHeight;
            } else if (movieHeight < maximumHeight) {
                scaleW = (float) maximumHeight / (float) movieHeight;
                scaleW = 1 / scaleW;
            }
        } 
        /*
         * calculate overall scale
         */
        mScale = 1f / Math.max(scaleH, scaleW);

        mMeasuredMovieWidth = (int) (movieWidth * mScale);
        mMeasuredMovieHeight = (int) (movieHeight * mScale);

        setMeasuredDimension(mMeasuredMovieWidth, mMeasuredMovieHeight);

    } else {
        /*
         * No movie set, just set minimum available size.
         */
        setMeasuredDimension(getSuggestedMinimumWidth(),
                getSuggestedMinimumHeight());
    }
}