本文整理匯總了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];
}
示例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();
}
示例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();
}
}
示例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);
}
示例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);
}
}
示例6: get
import android.widget.ImageView; //導入方法依賴的package包/類
@Override
public Matrix get(ImageView object) {
return object.getImageMatrix();
}