diff --git a/components/customdrawn/customdrawn_android.pas b/components/customdrawn/customdrawn_android.pas index f993a48e67..7e722a26ad 100644 --- a/components/customdrawn/customdrawn_android.pas +++ b/components/customdrawn/customdrawn_android.pas @@ -505,7 +505,7 @@ begin TCDCHECKBOX_SQUARE_HALF_HEIGHT: Floor(GetMeasures(TCDCHECKBOX_SQUARE_HEIGHT)/2); TCDCHECKBOX_SQUARE_HEIGHT: Result := DPIAdjustment(20); // - TCDRADIOBUTTON_CIRCLE_HEIGHT: Result := DPIAdjustment(20); + TCDRADIOBUTTON_CIRCLE_HEIGHT: Result := DPIAdjustment(20); // Must be dividable by 4 // { TCDSCROLLBAR_BUTTON_WIDTH: Result := 17; TCDSCROLLBAR_LEFT_SPACING: Result := 17; diff --git a/lcl/customdrawndrawers.pas b/lcl/customdrawndrawers.pas index a5e63aaf57..d26aafb5f7 100644 --- a/lcl/customdrawndrawers.pas +++ b/lcl/customdrawndrawers.pas @@ -545,10 +545,19 @@ end; procedure TCDDrawer.ScaleRasterImage(ARasterImage: TRasterImage; ASourceDPI, ADestDPI: Word); var lNewWidth, lNewHeight: Int64; + lTmpBmp: TBitmap; begin lNewWidth := Round(ARasterImage.Width * ADestDPI / ASourceDPI); lNewHeight := Round(ARasterImage.Height * ADestDPI / ASourceDPI); - ARasterImage.Canvas.StretchDraw(Bounds(0, 0, lNewWidth, lNewHeight), ARasterImage); + lTmpBmp := TBitmap.Create; + try + lTmpBmp.Width := ARasterImage.Width; + lTmpBmp.Height := ARasterImage.Height; + lTmpBmp.Canvas.Draw(0, 0, ARasterImage); + ARasterImage.Canvas.StretchDraw(Bounds(0, 0, lNewWidth, lNewHeight), lTmpBmp); + finally + lTmpBmp.Free; + end; ARasterImage.Width := lNewWidth; ARasterImage.Height := lNewHeight; end;