Browse Source

Fix psitioning of TextureView elements relative to target element

Henley Kuang 6 years ago
parent
commit
896dbf95fb
1 changed files with 12 additions and 1 deletions
  1. 12
    1
      android/src/main/java/fr/greweb/reactnativeviewshot/ViewShot.java

+ 12
- 1
android/src/main/java/fr/greweb/reactnativeviewshot/ViewShot.java View File

@@ -180,7 +180,18 @@ public class ViewShot implements UIBlock {
180 180
             if(child instanceof TextureView) {
181 181
                 ((TextureView) child).setOpaque(false);
182 182
                 childBitmapBuffer = ((TextureView) child).getBitmap(child.getWidth(), child.getHeight());
183
-                c.drawBitmap(childBitmapBuffer, child.getLeft() + ((ViewGroup)child.getParent()).getLeft() +  child.getPaddingLeft(), child.getTop() + ((ViewGroup)child.getParent()).getTop() + child.getPaddingTop(), null);
183
+                int left = child.getLeft();
184
+                int top = child.getTop();
185
+                View parentElem = (View)child.getParent();
186
+                while (parentElem != null) {
187
+                    if (parentElem == view) {
188
+                        break;
189
+                    }
190
+                    parentLeft += parentElem.getLeft();
191
+                    parentTop += parentElem.getTop();
192
+                    parentElem = (View)parentElem.getParent();
193
+                }
194
+                c.drawBitmap(childBitmapBuffer, left + child.getPaddingLeft(),  top + child.getPaddingTop(), null);
184 195
             }
185 196
         }
186 197