Skip to content

Commit 5f14845

Browse files
authored
fix(android): proper image view scaling for ScaleTypes.CENTER (#10899)
1 parent 09f0e7a commit 5f14845

File tree

1 file changed

+11
-0
lines changed
  • packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets

1 file changed

+11
-0
lines changed

packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets/ImageView.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,17 @@ protected void onDraw(Canvas canvas) {
364364
float uniformScale;
365365
float pivotX, pivotY;
366366
switch (this.getScaleType()) {
367+
case CENTER:
368+
uniformScale = 1;
369+
matrix.postTranslate((innerWidth - bitmapWidth) / 2, (innerHeight - bitmapHeight) / 2);
370+
matrix.postScale(uniformScale, uniformScale, innerWidth / 2, innerHeight / 2);
371+
canvas.clipRect(
372+
borderLeftWidth + (innerWidth - bitmapWidth * uniformScale) / 2,
373+
borderTopWidth + (innerHeight - bitmapHeight * uniformScale) / 2,
374+
borderLeftWidth + (innerWidth + bitmapWidth * uniformScale) / 2,
375+
borderTopWidth + (innerHeight + bitmapHeight * uniformScale) / 2
376+
);
377+
break;
367378
case FIT_CENTER: // aspectFit
368379
uniformScale = Math.min(fittingScaleX, fittingScaleY);
369380
matrix.postTranslate((innerWidth - bitmapWidth) / 2, (innerHeight - bitmapHeight) / 2);

0 commit comments

Comments
 (0)