From ab282569165c0ecbaa78cc53edada18adefe9305 Mon Sep 17 00:00:00 2001 From: "pengfei.zhou" Date: Mon, 27 Apr 2020 15:56:25 +0800 Subject: [PATCH] android:image strech unit should multiply scale --- .../src/main/java/pub/doric/shader/ImageNode.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doric-android/doric/src/main/java/pub/doric/shader/ImageNode.java b/doric-android/doric/src/main/java/pub/doric/shader/ImageNode.java index 045d0711..e31f8fa8 100644 --- a/doric-android/doric/src/main/java/pub/doric/shader/ImageNode.java +++ b/doric-android/doric/src/main/java/pub/doric/shader/ImageNode.java @@ -252,18 +252,18 @@ public class ImageNode extends ViewNode { protected void setResource(@Nullable Drawable resource) { if (resource instanceof BitmapDrawable) { Bitmap bitmap = ((BitmapDrawable) resource).getBitmap(); + float scale = DoricUtils.getScreenScale() / imageScale; if (imageScale != DoricUtils.getScreenScale()) { - float scale = DoricUtils.getScreenScale() / imageScale; Matrix matrix = new Matrix(); matrix.setScale(scale, scale); bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); resource = new BitmapDrawable(getContext().getResources(), bitmap); } if (stretchInset != null) { - float left = stretchInset.getProperty("left").asNumber().toFloat(); - float top = stretchInset.getProperty("top").asNumber().toFloat(); - float right = stretchInset.getProperty("right").asNumber().toFloat(); - float bottom = stretchInset.getProperty("bottom").asNumber().toFloat(); + float left = stretchInset.getProperty("left").asNumber().toFloat() * scale; + float top = stretchInset.getProperty("top").asNumber().toFloat() * scale; + float right = stretchInset.getProperty("right").asNumber().toFloat() * scale; + float bottom = stretchInset.getProperty("bottom").asNumber().toFloat() * scale; Rect rect = new Rect( (int) left,