當前位置: 首頁>>代碼示例>>Java>>正文


Java ImageView.getImageMatrix方法代碼示例

本文整理匯總了Java中android.widget.ImageView.getImageMatrix方法的典型用法代碼示例。如果您正苦於以下問題:Java ImageView.getImageMatrix方法的具體用法?Java ImageView.getImageMatrix怎麽用?Java ImageView.getImageMatrix使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.widget.ImageView的用法示例。


在下文中一共展示了ImageView.getImageMatrix方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: Builder

import android.widget.ImageView; //導入方法依賴的package包/類
public Builder(ImageView imageView) {
    viewRef = new WeakReference<>(imageView);
    if (imageView.getScaleType() != ImageView.ScaleType.MATRIX) {
        throw new IllegalStateException("the image scaleType must be ScaleType.MATRIX");
    }

    Drawable d = imageView.getDrawable();
    if (d != null) {
        animCenterX = d.getIntrinsicWidth() / 2;
        animCenterY = d.getIntrinsicHeight() / 2;
    }

    Matrix matrix = new Matrix(imageView.getImageMatrix());
    fromDegrees = toDegrees = MatrixUtils.getMatrixAngle(matrix);
    fromScaleX = toScaleX = getMatrixScaleX(matrix);
    fromScaleY = toScaleY = getMatrixScaleY(matrix);

    float[] txty = calculateTxTy();
    fromTranslateX = toTranslateX = txty[0];
    fromTranslateY = toTranslateY = txty[1];

}
 
開發者ID:xyzxqs,項目名稱:XphotoView,代碼行數:23,代碼來源:ImageMatrixAnimator.java

示例2: onAnimationUpdate

import android.widget.ImageView; //導入方法依賴的package包/類
@Override
public void onAnimationUpdate(ValueAnimator animation) {
    ImageMatrixCorrector corrector = getCorrector();
    ImageView imageView = corrector.getImageView();
    Matrix matrix = imageView.getImageMatrix();
    float[] values = getValues();
    matrix.getValues(values);

    float dx = (float) animation.getAnimatedValue(PROPERTY_TRANSLATE_X);
    dx = corrector.correctAbsolute(Matrix.MTRANS_X, dx) - values[Matrix.MTRANS_X];

    float dy = (float) animation.getAnimatedValue(PROPERTY_TRANSLATE_Y);
    dy = corrector.correctAbsolute(Matrix.MTRANS_Y, dy) - values[Matrix.MTRANS_Y];

    matrix.postTranslate(dx, dy);
    imageView.invalidate();
}
 
開發者ID:martinwithaar,項目名稱:PinchToZoom,代碼行數:18,代碼來源:FlingAnimatorHandler.java

示例3: onAnimationUpdate

import android.widget.ImageView; //導入方法依賴的package包/類
@Override
public void onAnimationUpdate(ValueAnimator animation) {
    ImageMatrixCorrector corrector = getCorrector();
    ImageView imageView = corrector.getImageView();
    if(imageView.getDrawable() != null) {
        Matrix matrix = imageView.getImageMatrix();
        float[] values = getValues();
        matrix.getValues(values);

        float sx = (float) animation.getAnimatedValue();
        sx = corrector.correctAbsolute(Matrix.MSCALE_X, sx) / values[Matrix.MSCALE_X];

        if (translate) {
            matrix.postScale(sx, sx, px, py);
        } else {
            matrix.postScale(sx, sx);
        }
        corrector.performAbsoluteCorrections();
        imageView.invalidate();
    }
}
 
開發者ID:martinwithaar,項目名稱:PinchToZoom,代碼行數:22,代碼來源:ScaleAnimatorHandler.java

示例4: canScroll

import android.widget.ImageView; //導入方法依賴的package包/類
@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
    if(v instanceof ImageView) {
        ImageView iv = (ImageView) v;
        Drawable drawable = iv.getDrawable();
        if(drawable != null) {
            float vw = iv.getWidth();
            float vh = iv.getHeight();
            float dw = drawable.getIntrinsicWidth();
            float dh = drawable.getIntrinsicHeight();

            Matrix matrix = iv.getImageMatrix();
            matrix.getValues(VALUES);
            float tx = VALUES[Matrix.MTRANS_X] + dx;
            float sdw = dw * VALUES[Matrix.MSCALE_X];

            //Log.d(TAG, "sdw: " + sdw + " vw: " + vw);

            return VALUES[Matrix.MSCALE_X] / centerInsideScale(vw, vh, dw, dh) > scaleThreshold && !translationExceedsBoundary(tx, vw, sdw) && sdw > vw && pointerCount == 1; // Assumes x-y scales are equal
        }
    }
    return super.canScroll(v, checkV, dx, x, y);
}
 
開發者ID:martinwithaar,項目名稱:PinchToZoom,代碼行數:24,代碼來源:ImageViewPager.java

示例5: updateImageViewMatrix

import android.widget.ImageView; //導入方法依賴的package包/類
/**
 *
 * @param imageView
 * @param width
 * @param height
 */
public static final void updateImageViewMatrix(ImageView imageView, float width, float height) {
    Drawable drawable = imageView.getDrawable();
    if(drawable == null) {
        throw new NullPointerException("ImageView drawable is null");
    }
    Matrix matrix = imageView.getImageMatrix();
    if(!matrix.isIdentity()) {
        float[] values = new float[9];
        matrix.getValues(values);

        RectF src = new RectF();
        src.left = 0;
        src.top = 0;
        src.right = width;
        src.bottom = height;

        RectF dst = new RectF();
        dst.left = values[Matrix.MTRANS_X];
        dst.top = values[Matrix.MTRANS_Y];
        dst.right = dst.left + (drawable.getIntrinsicWidth() * values[Matrix.MSCALE_X]);
        dst.bottom = dst.top + (drawable.getIntrinsicHeight() * values[Matrix.MSCALE_Y]);

        matrix.setRectToRect(src, dst, Matrix.ScaleToFit.CENTER);
    }
}
 
開發者ID:martinwithaar,項目名稱:PinchToZoom,代碼行數:32,代碼來源:ImageViewUtils.java

示例6: get

import android.widget.ImageView; //導入方法依賴的package包/類
@Override
public Matrix get(ImageView object) {
    return object.getImageMatrix();
}
 
開發者ID:unixzii,項目名稱:android-source-codes,代碼行數:5,代碼來源:ImageTransitionActivity.java


注:本文中的android.widget.ImageView.getImageMatrix方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。