소스 검색

Fix psitioning of TextureView elements relative to target element

Henley Kuang 6 년 전
부모
커밋
896dbf95fb
1개의 변경된 파일12개의 추가작업 그리고 1개의 파일을 삭제
  1. 12
    1
      android/src/main/java/fr/greweb/reactnativeviewshot/ViewShot.java

+ 12
- 1
android/src/main/java/fr/greweb/reactnativeviewshot/ViewShot.java 파일 보기

@@ -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