2016-11-04 20 views
9

Tình hìnhLàm thế nào để vô hiệu hóa hình ảnh mờ dần có hiệu lực trong React Native?

  • động chuyển đổi qua lại hình ảnh
  • Phản ứng Native mode
  • Dev
  • Android

Vấn đề

  • Hình ảnh mờ dần khi xuất hiện trong chế độ nhà phát triển. Đây là một vấn đề kể từ khi tôi đang phát triển và điều chỉnh hình ảnh động với hiệu ứng mờ dần thực tế. Có thể tắt hiệu ứng mờ dần không?

Nỗ lực

  • Switched để giải phóng chế độ. Hoạt động nhưng không phù hợp trong quá trình phát triển.
  • Giảm thiểu kích thước tệp hình ảnh. Không có sự khác biệt rõ ràng.
  • Giảm thiểu kích thước hiển thị hình ảnh. Không có sự khác biệt rõ ràng.
+1

Bạn có thể đăng một số mã bạn đang sử dụng –

+0

Bạn có sử dụng Animated.spring() ở bất kỳ đâu trong trang không? Tôi đã có một vấn đề khi sử dụng điều này trong một thành phần trong cây thị giác có nghĩa là mọi phần tử trên trang sẽ nhận được hoạt ảnh mờ dần. Làm tôi hơi điên một chút trước khi tôi tìm ra nơi nó đến. –

+0

Bạn đã bao giờ tìm ra điều này chưa? –

Trả lời

12

Just đặt thành phần fadeDuration={0} thành Image, đây không phải là tài liệu

Bạn có thể kiểm tra here để biết thêm thông tin

+0

câu trả lời rất hữu ích. cảm ơn! – Val

0

tôi quản lý để ngăn chặn các hình ảnh động mờ dần bằng cách gói của tôi <Image /> với một tuỳ chỉnh ViewGroupManager và thiết ReactImageView.mFadeDuration bằng không với suy nghĩ trước hình ảnh sẽ được thêm vào tùy chỉnh ViewGroup. Edit: Nhưng điều này cho biết thêm một sự chậm trễ đáng kể khi hiển thị hình ảnh :( Có thực sự không có chậm trễ

Something như thế này:.

public class NoFadeImageWrapper extends ViewGroup { 
    public NoFadeImageWrapper(Context context) { 
     super(context); 
    } 

    @Override 
    public void onViewAdded(View child) { 
     if (child instanceof ReactImageView) { 
      ((ReactImageView) child).setFadeDuration(0); 
      ReflectionUtils.setField(child, "mIsDirty", true); 
     } 
     super.onViewAdded(child); 
    } 
} 

ReflectionUtils.setField thực hiện:

public class ReflectionUtils { 
    public static void setField(Object obj, String name, Object value) { 
     try { 
      Field field = getField(obj.getClass(), name); 
      if (field == null) { 
       return; 
      } 
      field.setAccessible(true); 
      field.set(obj, value); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
Các vấn đề liên quan