Fresco: рдирд┐рдореНрди рдЫрд╡рд┐ рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ<image/> рдЖрд░рдПрди рдкрд░ рдШрдЯрдХ&gt; = 0.57 (рдлреНрд░реЗрд╕реНрдХреЛ&gt; = 1.10.0)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдЕрдЧре░ 2019  ┬╖  57рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/fresco

рд╡рд┐рд╡рд░рдг

RN рд╕рдорд╕реНрдпрд╛: RN 0.57.x рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП рдмрдбрд╝реЗ рдЪрд┐рддреНрд░ \ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рджреЗрдЦрдиреЗ рдкрд░ рдирд┐рдореНрди рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ

рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдмрдбрд╝реЗ рдмрдВрдбрд▓ (рдкреАрдПрдирдЬреА, рдЬреАрдЖрдИрдПрдл рдФрд░ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рдкреНрд░рд╛рд░реВрдк, рдЬреЗрдкреАрдИрдЬреА рдирд╣реАрдВ ) рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрди рдЧреБрдгрд╡рддреНрддрд╛ рд╣реЛрддреА рд╣реИ:

рдмрд╛рдПрдВ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рд╣рдо рдареАрдХ рдЙрд╕реА рдХреЛрдб рдХреЛ RN 0.56.0 рдХреЗ рд╕рд╛рде рдЪрд▓рддреЗ рд╣реБрдП RN 0.57.1 рджреЗрдЦрддреЗ рд╣реИрдВред рдХреЛрдб рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЫрд╡рд┐ рд╣реИ <Image source={require('./assets/ELHall1.png')} resizeMethod="resize" /> рдФрд░ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ 2111 x 4645 pixels ред рджреЛрдиреЛрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ react-native init RN057ImageTest рдФрд░ react-native init --version="0.56.0" RN056ImageTest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдпрд╣ 0.56 рдФрд░ рдмрд╛рдж рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдирд╡реАрдирддрдо RN 0.60.x рд╕реЗ рд╣реЛрддрд╛ рд░рд╣рддрд╛ рд╣реИред

рдпрд╣ 0.56 рдФрд░ 0.57 рдХреЗ рдмреАрдЪ 1.9.0 рд╕реЗ 1.10.0 https://github.com/facebook/react-native/commit/b6f2aad9c0119d11e52978ff3fa9c6f269f04a14 рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ рд╣реИред рдЯрд┐рдкреНрдкрдгреА рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ https://github.com/facebook/react-native/issues/21301#issuecomment-520155609ред

рдлреНрд░реЗрд╕реНрдХреЛ рдореБрджреНрджреЛрдВ рдкрд░ рдХреБрдЫ рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдореИрдВ рдХреБрдЫ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдмрдбрд╝реА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЯреБрдХрдбрд╝реЗ-рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдФрд░ рдкреБрди: рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдпрд╣ рдХрдИ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ (рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдирдЪрд┐рддреНрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрдбрд╝реА рдЫрд╡рд┐рдпрд╛рдВ) рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдб рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ / рдмрдирд╛рдИ рдЧрдИ рдЫрд╡рд┐рдпрд╛рдВред рдпрд╣ RN 0.56 рддрдХ рдФрд░ 0.57 рд╕реЗ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдкреНрд░рдЬрдирди

RN: рдпрд╣ рдПрдХ <Image/> рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдЖрд░рдВрднрд┐рдХ App.js ред

...
type Props = {};
export default class App extends Component<Props> {
  render() {
    return (
      <View style={styles.container}>
        <Image source={require('./assets/ELHall1.png')} resizeMethod="resize" />
      </View>
    );
  }
}
...

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА

рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдкрд░ https://github.com/facebook/react-native/issues/21301#issuecomment-520418832, рд▓реИрдореНрдмрдбрд╛рдкрд┐рдпреЛрдирд┐рдпрд░ рд▓рд┐рдЦрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рд╕реНрдХреЗрд▓ рдбрд╛рдЙрди (рдЙрдк-рдирдореВрдирд╛рдХрд░рдг) рдмрдбрд╝реА рдЫрд╡рд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдХрд┐ рдлреНрд░реЗрд╕реНрдХреЛ рдХреИрд╕реЗ рдмрдбрд╝реА рдЫрд╡рд┐рдпреЛрдВ (рдЙрдк-рдирдореВрдирд╛рдХрд░рдг) рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рд╕реНрдореГрддрд┐ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ)ред рдЙрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдореВрд▓ рдХреЛрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рд╣реБрдП рд╣реИрдВ рддрд╛рдХрд┐ рджрдмрд╛рд╡ рд╡рд╛рд▓реА .so рдЕрд╕рдВрддреБрд╖реНрдЯ рд▓рд┐рдВрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХреЗред рддреЛ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП: рдпрд╣ рдПрдХ рдФрд░ рдмрдбрд╝реЗ рд╕реБрдзрд╛рд░ рдХрд╛ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

  • рдлреНрд░реЗрд╕реНрдХреЛ рд╕рдВрд╕реНрдХрд░рдг:>= 1.10.0
  • рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдВрд╕реНрдХрд░рдг: RN>= 0.57, рд╕рднреА Android рд╕рдВрд╕реНрдХрд░рдг

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@CaptainN рдпрд╣ рдЕрд╕рднреНрдп рдирд╣реАрдВ рд╣реИред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдкреИрдЪ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдЯрд╛рд░реНрдЯрд░ рд░реЗрдкреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рд▓рдЧреЗрдЧрд╛ред

рддреЛ рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ: https://github.com/clytras/RN061FrescoBuild

рдЗрд╕рдореЗрдВ RN 0.61.5 ред рд░реЗрдкреЛ рдХреЗ рдкрд╛рд╕ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред рдпрд╣ рдлреНрд░реЗрд╕реНрдХреЛ, рдХреНрд▓реЛрди checkouts v2.1.0 рдФрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ DecodeProducer.java рддреЛ downsample рдХреЛрдб рдмрд╛рд╣рд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ Android NDK рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдПрдХ libraries/fresco/local.properties рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рдиреА рд╣реЛрдЧреАред рдпрд╣ рд╕рдм рд░реАрдбрдореА рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рд╣реИред

рдпрджрд┐ рдЖрдк рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рдпрд╛рд░реНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдореМрдЬреВрджрд╛ RN>= 0.60 (_or рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг_) рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдлреНрд░реЗрд╕реНрдХреЛ рд▓рд┐рдм рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рднреА 57 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдмрдЧ" рдпрд╛ "рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

RN 0.56.0 рдФрд░ 0.57.1 тАЛтАЛрдХреМрди рд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдпрд╣ рдЙрди рдХрдорд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рдереЗред

рд╣реИрд▓реЛ @oprisnik ,

рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдКрдВрдЧрд╛ рддреЛ рдореИрдВ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдкреИрдЪ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдорд┐рд▓рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ https://github.com/facebook/react-native/issues/21301#issuecomment -520155609 рдмрд┐рд▓реНрдХреБрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред

рд╣рд╛рдп @clytras , рдореБрдЭреЗ рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЫрд╡рд┐ рдорд┐рд▓реАред
рдореИрдВ рдЪрд┐рддреНрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдкрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЪрд┐рддреНрд░ 2111 (рдЪреМрдбрд╝рд╛рдИ) * 4645 (рдКрдВрдЪрд╛рдИ) рд╣реИред

рдУрдкрдирдЬреАрдПрд▓ рд╕реАрдорд╛ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрд╕реНрдХреЛ рдПрдХ рдЫрд╡рд┐ рдХреЛ рдбрд╛рдЙрдирд╕реИрдореНрдкрд▓ рдХрд░реЗрдЧрд╛, рдЗрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЫрд╡рд┐ рдХреА рдЕрдзрд┐рдХрддрдо рдЪреМрдбрд╝рд╛рдИ/рдКрдВрдЪрд╛рдИ рд╣рд╛рд░реНрдбрдХреЛрдб рд╣реИред

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ,
рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдПрдХ ResizeOption рдХреЗ maxBitmapSize рдлрд╝реАрд▓реНрдб рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред
рдмрд╣реБрдд рдмрдбрд╝реА рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдПрдВ, рдФрд░ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХрдИ рдПрдВрдбреНрд░реЙрдЗрдб рдЯреАрдо рдХреА рдкрд╕рдВрдж рд╣реИред

рд╣рд╛рдп @ s1rius , рдпрджрд┐ рдЖрдк рдУрдкрди рдЗрд╢реНрдпреВ рдкреЛрд╕реНрдЯ рдкрдврд╝рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдареАрдХ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ:

рдХреЛрдб рд╕рд┐рд░реНрдл рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЫрд╡рд┐ рд╣реИ рдФрд░ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ 2111 x 4645 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИ

рдпрд╣ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬреЛ RN>= 0.57 рд╕реЗ рд╣реБрдЖ рдЬреЛ рдлреНрд░реЗрд╕реНрдХреЛ 1.9.0 рд╕реЗ 1.10.0 рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ред рдЙрд╕ рдЬреИрд╕реА рдмрдбрд╝реА рдЫрд╡рд┐рдпрд╛рдВ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░реНрдг рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рдереАрдВ рдФрд░ рд▓реЛрдб рд╣реЛ рд░рд╣реА рдереАрдВред рдЖрд░рдПрди рд░реЗрдкреЛ рдХреЗ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЖрд░рдПрди рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рдПрдХ рдлреНрд░реЗрд╕реНрдХреЛ рд▓рд┐рдм рдореБрджреНрджрд╛ рд╣реИред рдпрджрд┐ рд╡рд╣ рд╡реНрдпрд╡рд╣рд╛рд░рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдЬрд╛рдирдмреВрдЭрдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рддрдХ рдФрд░ рдЕрдЪрд╛рдирдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдХреНрдпреЛрдВ, рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред

рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдмрдЧ" рдпрд╛ "рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ред рдпрджрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣ рд╣реИ https://github.com/facebook/fresco/commit/fa71901055a38a810c190862c7fd582fd3dad2b3

рдХреНрдпрд╛ рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ?

рд╣реИрд▓реЛ рдлрд┐рд░ рд╕реЗ @oprisnik рдФрд░ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рдЧреНрд░реЗрдбрд▓ рд╕реЗ рдЗрддрдирд╛ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ рд╕реНрд░реЛрдд рд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░рдПрди рдХреЛ рдХреИрд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВред рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рдореИрдВрдиреЗ рдЬреЛ рдХрджрдо рдЙрдард╛рдП рд╣реИрдВ:

  1. react-native-cli рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ RN 0.57 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ
  2. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдлреНрд░реЗрд╕реНрдХреЛ рд▓рд┐рдм рдХреНрд▓реЛрди рдХрд░реЗрдВ
  3. рдлреНрд░реЗрд╕реНрдХреЛ рд▓рд┐рдм рдХреЗ рдЕрдВрджрд░ v1.10.0 рд╢рд╛рдЦрд╛ рдореЗрдВ рдЪреЗрдХрдЖрдЙрдЯ рдХрд░реЗрдВ
  4. android-ndk-r20 рдкрде рдХреЛ <Project>\android\local.properties ( ndk.dir=G:\\Dev\\Android\\android-ndk-r20 ) рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

рддрдм рдореБрдЭреЗ рдпрд╣ рдЙрддреНрддрд░ SO https://stackoverflow.com/a/52861379/1889685 рдкрд░ рдорд┐рд▓рд╛, рдЬреЛ рд╕реНрд░реЛрдд рд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЗ рд╕рд╛рде RN рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ:

cd android
./gradlew assembleDebug --include-build /e/Sandbox/RN057ImageTest/fresco/

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

> Task :fresco:imagepipeline:ndk_build_bitmaps FAILED
A problem was found with the configuration of task ':fresco:imagepipeline:ndk_build_bitmaps'. Registering invalid inputs and outputs via TaskInputs and TaskOutputs methods has been deprecated and is scheduled to be removed in Gradle 5.0.
 - File 'E:\Sandbox\RN057ImageTest\fresco\imagepipeline\src\main\jni\bitmaps' specified for property '$1' is not a file.

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ @sunnylqm рдЕрдЧрд░ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рд╕рдордп рд╣реЛ рддреЛ рд╡рд╣ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╣реИред

рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рддрдХ рдЬреЛ рдХреБрдЫ рднреА рд╣реИ рдЙрд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдПрдХ рд░реЗрдкреЛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдмрдЧ" рдпрд╛ "рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВрдиреЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдПрдирдбреАрдХреЗ рддреНрд░реБрдЯрд┐ рднреА рдорд┐рд▓реАред рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рд░рд╛рддреНрд░рд┐рдХрд╛рд▓реАрди рдирд┐рд░реНрдорд╛рдг рд╣реИрдВ рдЬрд┐рди рдкрд░ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЪреВрдВрдХрд┐ рдореИрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрд╢реЛрдзрди рдХреЗ v2.0.0 рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдЖрдЬрдорд╛рдпрд╛ред рдореИрдВрдиреЗ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд╖рдо рд╣реИ , рдФрд░ рдпрд╣рд╛рдВ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ

рдкрд░реАрдХреНрд╖рдг рдЫрд╡рд┐ рдпреВрд░реА:
" https://wagonsclub.oss-cn-beijing.aliyuncs.com/static/carousel/carousel1_bg.jpg "

рдЦрдВрдб_рдбреНрд░рд╛рд╡реЗ_рд╕рд░рд▓.рдПрдХреНрд╕рдПрдордПрд▓

  <com.facebook.drawee.view.SimpleDraweeView
      android:id="@+id/drawee_view"
      android:layout_width="match_parent"
      android:layout_height="1000dp"
      />

рдореВрд▓ v2.0.0 рд╢реЛрдХреЗрд╕
image

рдЕрдХреНрд╖рдо рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ v2.0.0 рд╢реЛрдХреЗрд╕
image

@sunnylqm рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ:

MainApplication.java onCreate рдореЗрдВ рдкреНрд░рдердо :

<strong i="10">@Override</strong>
public void onCreate() {
  super.onCreate();

  ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this)
    .setDownsampleEnabled(false)
    .build();

  Fresco.initialize(this, config);

  SoLoader.init(this, /* native exopackage */ false);
}

рдЗрд╕рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рд▓реЙрдЧрдХреИрдЯ рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдлреНрд░реЗрд╕реНрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢реБрд░реВ рд╣реЛ рдЪреБрдХрд╛ рд╣реИред

рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдореИрдВрдиреЗ MainReactPackage рдХреЛ MainPackageConfig рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╛ рддреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

protected List<ReactPackage> getPackages() {
  Context context = getApplicationContext();
  ImagePipelineConfig pipelineConfig = ImagePipelineConfig
    .newBuilder(context.getApplicationContext())
    .setDownsampleEnabled(false)
    .build();
  MainPackageConfig config = new MainPackageConfig.Builder().setFrescoConfig(pipelineConfig).build();

  return new ArrayList<>(Arrays.<ReactPackage>asList(
    new MainReactPackage(config),
    new ReactNativeFirebaseAppPackage(),
    new FastImageViewPackage(),
    new RNGestureHandlerPackage(),
    new ReanimatedPackage(),
    new SvgPackage()
  ));
}

@clytras рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдкрд┐рдВрдЧ @oprisnik

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдореБрдЦреНрдп рдкреИрдХреЗрдЬ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/facebook/react-native/blob/6c0f73b3223968448bb186b82f06f6819068a21d/ReactAndroid/src/main/java/com/facebook/react/shell/MainPackageConfig.java

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЖрд░рдПрди рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕реЗрдЯ рдЕрдк рдХрд░рдирд╛ рд╣реИ, рдХрднреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред

@oprisnik рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдЖрд░рдПрди рд░реЗрдкреЛ рдХрд╛ рд╣реИред рдЫрд╡рд┐ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдПрдХ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬреЛ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рд╕реНрдореГрддрд┐ рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рдиреЗ, рджрдХреНрд╖рддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдФрд░ рдмрдбрд╝реА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдХрдо рдХреНрд░реИрд╕ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЖрд░рдПрди рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЕрдВрддрд┐рдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдпрд╣ рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдЫрд╡рд┐ рдбрд╛рдЙрдирд╕рдорд▓рд┐рдВрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рд╡рд┐рдХрд▓реНрдк/рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдРрдк рдореЗрдВ, рдЬрд╣рд╛рдВ рдореИрдВ рдХреБрдЫ рдордВрдЬрд┐рд▓ рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд░реНрд╢ рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬрд╝реВрдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рдЙрдЪреНрдЪ-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рд╣рдореЗрд╢рд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЕрдЧрд░ рдпрд╣ рдХрдо рд░реИрдо рдпрд╛ рдХрдо-рд░реЗрдЬ рд╡рд╛рд▓рд╛ рд▓реЛ-рдПрдВрдб рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИ, рддреЛ рдореИрдВ рдЫреЛрдЯреА рдФрд░ рдирд┐рдЪрд▓реА рд░реЗрдЬ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВред

resizeMethod рдШрдЯрдХ рдХреЗ рд▓рд┐рдП <Image/> resizeMethod рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ scale рдФрд░ resize ред RN рдХрд░рдВрдЯ рдЙрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ scale рдореВрд▓реНрдп рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЫрд╡рд┐ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдХреЗрд╡рд▓ resize рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

resizeMethod

рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдЫрд╡рд┐ рджреГрд╢реНрдп рдХреЗ рдЖрдпрд╛рдореЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрдиреЗ рдкрд░ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рддрдВрддреНрд░ред рдСрдЯреЛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯред

resize : рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдСрдкрд░реЗрд╢рди рдЬреЛ рдПрдиреНрдХреЛрдбреЗрдб рдЗрдореЗрдЬ рдХреЛ рдбрд┐рдХреЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ scale рдмрдЬрд╛рдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЫрд╡рд┐ рджреГрд╢реНрдп рд╕реЗ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реЛред

scale : рдЫрд╡рд┐ рдХреЛ рдШрдЯрд╛рдпрд╛ рдпрд╛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред resize , scale рддреЗрдЬ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рд┐рдд) рдФрд░ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реА рдЫрд╡рд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЫрд╡рд┐ рджреГрд╢реНрдп рд╕реЗ рдЫреЛрдЯреА рд╣реЛред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рднреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЫрд╡рд┐ рджреГрд╢реНрдп рд╕реЗ рдереЛрдбрд╝реА рдмрдбрд╝реА рд╣реЛред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ @oprisnik @sunnylqm рдкрд░ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рджреЗрдЦрдирд╛

@clytras рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛ рд╣реИ, рдпрд╣ рдмрд┐рдирд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдлреНрд░реЗрд╕реНрдХреЛ рдореЗрдВ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред (рдореИрдВ рдЬреЛ рдбреЗрдореЛ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рд╡рд╣ рдлреНрд░реЗрд╕реНрдХреЛ рд░реЗрдкреЛ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдРрдк рд╣реИ) рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдЖрд░рдПрди рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИред

@sunnylqm рдмреЗрд╢рдХ рдпрд╣ рдмрд┐рдирд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдлреНрд░реЗрд╕реНрдХреЛ рдореЗрдВ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ, рд▓реЗрдХрд┐рди RN рдХреЛ рдЗрд╕ рдлреНрд░реЗрд╕реНрдХреЛ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕рдХреНрд╖рдо/рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк

рдпрд╣ рднреА рди рднреВрд▓реЗрдВ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдИрдУрдПрд╕ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЪреВрдВрдХрд┐ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрд╢реА рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЖрд░рдПрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

BTW рдореИрдВрдиреЗ рдирд╡реАрдирддрдо RN 0.61.2 рдХреЗ рд╕рд╛рде рдлреНрд░реЗрд╕реНрдХреЛ 2.0.0 (рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛) рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдмреА рд╣рд╛рд╕рд┐рд▓ рдХреА рдФрд░ DecodeProducer.java рдкрд░

рдореИрдВрдиреЗ рдлреНрд░реЗрд╕реНрдХреЛ рд░реЗрдкреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рдПрдХ local.properties рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ 64-рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП Android NDK рд╕рдВрд╢реЛрдзрди 19c x86_64 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

ndk.dir=G:\\Dev\\Android\\android-ndk-r19c
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true

рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЪрд▓рдХрд░ рдмрдирд╛рдП рдЧрдП RN рдРрдк рдХреЗ рд▓рд┐рдП рдЗрдореЗрдЬ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

cd android
.\gradlew assembleDebug --include-build ..\fresco\

рд╣рд╛рдБ, рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЖрдкрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЖрд░рдПрди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд▓реЙрдЬрд┐рдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдЬрдм рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

@oprisnik рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░, рд╕реНрд╡рдЪреНрдЫ рдФрд░ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд┐ рд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдкреНрд░реЛрдЬреЗрдХреНрдЯ com.facebook.imagepipeline.core.ImagePipelineConfig , com.facebook.react.shell.MainReactPackage рдФрд░ com.facebook.react.shell.MainPackageConfig рдХрд░рдХреЗ рдЗрд╕реЗ getPackages рдореЗрдердб рдореЗрдВ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MainReactPackage рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рди рддреЛ рдирд╡реАрдирддрдо RN 0.61 рдФрд░ рди рд╣реА RN 0.57 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ:

protected List<ReactPackage> getPackages() {
  Context context = getApplicationContext();

  ImagePipelineConfig pipelineConfig = ImagePipelineConfig
    .newBuilder(context.getApplicationContext())
    .setDownsampleEnabled(false)
    .build();

  MainPackageConfig config = new MainPackageConfig.Builder()
    .setFrescoConfig(pipelineConfig)
    .build();

  return new ArrayList<>(Arrays.<ReactPackage>asList(
    new MainReactPackage(config),
    ...
  ));
}

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╡рд╣рд╛рдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирдП> = 0.60 рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ PackageList.java рдлрд╝рд╛рдЗрд▓ рдХреЛ <project>/android/app/build/generated/rncli/src/main/java/com/facebook/react/ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ MainReactPackage рд╣реИ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддрд░реНрдХ рдХреЗ рдкрд╛рд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдореБрдЭреЗ рдСрдЯреЛ рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ MainReactPackage рдХреЛ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рд╡рд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЗ рд▓рд┐рдП рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рдХрд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдлреНрд░реЗрд╕реНрдХреЛ рд▓рд┐рдм рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рд╕рд╛рдл рдФрд░ рдкреНрд░рд▓реЗрдЦрд┐рдд рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

https://frescolib.org/docs/resizing.html рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ downsampling resizing рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИред рддреЛ @clytras рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЕрдЧрд░ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдбрд╛рдЙрдирд╕рдореНрдкрд▓рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

RN рдореЗрдВ рдХреЛрдб рдореБрдЭреЗ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИ https://github.com/facebook/react-native/blob/aee88b6843cea63d6aa0b5879ad6ef9da4701846/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.java#L505 ( рдпрд╣ рдЗрдореЗрдЬрдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реВрдиреНрдп рдорд╛рди рдкрд╛рд╕ рдХрд░реЗрдЧрд╛, рдЬреЛ рдХреЛрдИ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ/рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ)
рд▓реЗрдХрд┐рди рдлреНрд░реЗрд╕реНрдХреЛ рдореЗрдВ рдпрд╣ рд╢реВрдиреНрдп рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ https://github.com/facebook/fresco/blob/v2.0.0/imagepipeline/src/main/java/com/facebook/imagepipeline/producers/DecodeProducer.java#L158 - рдПрд▓169
рдпрджрд┐ downsampleEnabled рдФрд░ downsampleEnabledForNetwork рджреЛрдиреЛрдВ рд╕рддреНрдп рд╣реИрдВ, рддреЛ рдпрд╣ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рднрд▓реЗ рд╣реА рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рд╢реВрдиреНрдп рд╣реЛрдВ
https://github.com/facebook/fresco/blob/master/imagepipeline-base/src/main/java/com/facebook/imagepipeline/transcoder/DownsampleUtil.java#L56
рддреЛ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдбреЙрдХреНрдЯрд░ рдФрд░ рдХреЛрдб рдХреЗ рдмреАрдЪ рдПрдХ рдмреЗрдореЗрд▓ рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЫрд╡рд┐ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓ рд╣реЛред (рдЕрдм рдЗрд╕реЗ 2 рд╡реИрд╢реНрд╡рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) @clytras @oprisnik

рд╡рд╣рд╛рдБ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо @sunnylqmред рдореИрдВрдиреЗ рдЙрди рдЪреАрдЬреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <Image/> рдШрдЯрдХ рдХреЗ рд▓рд┐рдП RN рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреЛ рджреЗрдЦрдирд╛ рдФрд░ рдЙрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЖрдк рдореБрдЭрд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдП!

рдЪреВрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╛ рддреЛ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ resizeOptions рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ; рдЬреЛ рдХреЗрд╡рд▓ рддрднреА рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм resizeMethod рдХреЛ resize (рдпрд╛ auto рдФрд░ рд╕реНрдерд╛рдиреАрдп рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП) рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ https://github.com/facebook/react- рдореЗрдВ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред shouldResize рдлрд╝рдВрдХреНрд╢рди, рдпрд╛ рдПрдХ рдирдпрд╛ resizeMethod рдПрдирдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкред

рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдмрдЧ" рдпрд╛ "рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@clytras рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

@ Club9822 рдЕрдм рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдЫрд╡рд┐ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрд░реЛрдд рд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рд╣реИ https://github.com/facebook/fresco/issues/2397#issuecomment -541802753

рдХреЛрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рдордХрд╛рдЬ рд╣реИ?

@CaptainN рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрдард┐рди рдФрд░ рдердХрд╛рдК рд▓рдЧ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреБрдЫ рдорд╛рдореВрд▓реА рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдФрд░ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЕрдВрдХ рдореЗрдВ рдореЗрд░реА рдкреЛрд╕реНрдЯ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдВред

@clytras рдЖрдк new PackageList(this, config) рдореЗрдВ рджреВрд╕рд░реЗ рддрд░реНрдХ рдореЗрдВ config рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдФрд░ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░реЗред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рддрд░реНрдХ рдиреЗ рд╕рд┐рд░реНрдл https://github.com/facebook/fresco/blob/v2.0.0/imagepipeline/src/main/java/com/facebook/imagepipeline/producers/DecodeProducer.java#L158 рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ред -L169 рдЕрдЧрд░ рдпрд╣ false
рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдирд╛?

- if (mDownsampleEnabled || !statusHasFlag(status, Consumer.IS_RESIZING_DONE))
+ if (mDownsampleEnabled && !statusHasFlag(status, Consumer.IS_RESIZING_DONE))

@oprisnik

@sunnylqm рдореИрдВ рдХрд╛рд░реНрдпрд╛рд▓рдп рд╕реЗ рджреВрд░ рд╣реВрдВ рдФрд░ рдореИрдВ рдЕрднреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирдП _RN> = 60_ рдСрдЯреЛ рд▓рд┐рдВрдХ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ _RN_ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдЬрдм рдореИрдВ рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рд╕реЗ рд▓реМрдЯреВрдВрдЧрд╛ рддреЛ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ OR to AND рдкрд░рд┐рд╡рд░реНрддрди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдЕрдм рд╣рдореЗрд╢рд╛ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдореЗрдВ IS_RESIZING_DONE рдзреНрд╡рдЬ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ mDownsampleEnabled рдмрд╛рдпрдкрд╛рд╕ рдХрд░ рджреЗрддрд╛ рд╣реИред рдмреЗрд╢рдХ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХрд╕реНрдЯрдо рдлреНрд░реЗрд╕реНрдХреЛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@clytras рдореБрдЭреЗ

рдЖрд╣ рднреВрд▓ рдЬрд╛рдУред рдкреВрдЫрдирд╛ рднреА рд▓рд╛рдЬрдореА рд╣реИред рдореИрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдКрдВрдЧрд╛, рдФрд░ рд╢рд╛рдпрдж рдПрдХ рдкреАрдЖрд░ рдореЗрдВ рдбрд╛рд▓реВрдВрдЧрд╛ред

@CaptainN рдпрд╣ рдЕрд╕рднреНрдп рдирд╣реАрдВ рд╣реИред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдкреИрдЪ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдЯрд╛рд░реНрдЯрд░ рд░реЗрдкреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рд▓рдЧреЗрдЧрд╛ред

рддреЛ рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ: https://github.com/clytras/RN061FrescoBuild

рдЗрд╕рдореЗрдВ RN 0.61.5 ред рд░реЗрдкреЛ рдХреЗ рдкрд╛рд╕ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред рдпрд╣ рдлреНрд░реЗрд╕реНрдХреЛ, рдХреНрд▓реЛрди checkouts v2.1.0 рдФрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ DecodeProducer.java рддреЛ downsample рдХреЛрдб рдмрд╛рд╣рд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ Android NDK рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдПрдХ libraries/fresco/local.properties рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рдиреА рд╣реЛрдЧреАред рдпрд╣ рд╕рдм рд░реАрдбрдореА рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рд╣реИред

рдпрджрд┐ рдЖрдк рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рдпрд╛рд░реНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдореМрдЬреВрджрд╛ RN>= 0.60 (_or рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг_) рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдлреНрд░реЗрд╕реНрдХреЛ рд▓рд┐рдм рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

@clytras рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдБред

рдХреНрдпрд╛ рдХреЛрдИ рд╢рдмреНрдж рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгреА рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдЧреА?

рдореИрдВрдиреЗ рд╕реБрдЭрд╛рдП рдЧрдП @sunnylqm рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ:

- if (mDownsampleEnabled || !statusHasFlag(status, Consumer.IS_RESIZING_DONE))
+ if (mDownsampleEnabled && !statusHasFlag(status, Consumer.IS_RESIZING_DONE))

рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж, рдореИрдВ MainApplication.java рдЕрдВрджрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА рдлрд╝реНрд░реЗрд╕реНрдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдФрд░ рдХреЗрд╡рд▓ рд╡рд╣рд╛рдВ рдлрд╝реНрд░реЗрд╕реНрдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

<strong i="12">@Override</strong>
protected List<ReactPackage> getPackages() {
  Context context = getApplicationContext();

  ImagePipelineConfig frescoConfig = ImagePipelineConfig
    .newBuilder(context)
    .setDownsampleEnabled(false)
    .build();

  MainPackageConfig appConfig = new MainPackageConfig
    .Builder()
    .setFrescoConfig(frescoConfig)
    .build();

  @SuppressWarnings("UnnecessaryLocalVariable")
  List<ReactPackage> packages = new PackageList(this, appConfig).getPackages();
  // Packages that cannot be autolinked yet can be added manually here, for example:
  // packages.add(new MyReactNativePackage());
  return packages;
}

рдЙрд╕ рдПрдХрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж, рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛрдб рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрдЧрд╛ред рдЕрдЧрд░ рд╣рдо рдЙрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдпрд╛ .setDownsampleEnabled(true) рд╕реЗрдЯ рдХрд░реЗрдВ рддреЛ рдпрд╣ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓ рдХреЛ рдареАрдХ рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдЧ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ @oprisnikред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рдЪреАрдЬ resizeMethod рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рдиреЗ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП RN рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рджрд░рдЕрд╕рд▓ рдореИрдВ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЧрд▓рдд рдерд╛ред рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде (_рдЬреЛ рдХреБрд▓ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ_), RN рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ .setDownsampleEnabled(false) рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java#L155 , рдЗрд╕рд▓рд┐рдП, рдореЗрдВ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ .setDownsampleEnabled(true) ред RN рдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд╕реИрдВрдкрд▓рд┐рдВрдЧ рдЕрдХреНрд╖рдо рдХрд░ рджреА рд╣реИ!

@clytras @CaptainN рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдПрдХреНрд╕рдкреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдРрдк рдХреЛ рдирд┐рдХрд╛рд▓реЗ рдмрд┐рдирд╛, рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрд╢реА-рдХреНрд▓реА: 2.0.1
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓: 0.61.2

рдЫреЛрдЯрд╛ рдЕрдкрдбреЗрдЯред рдореБрдЭреЗ рдЕрдм рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реВрдВ рдЕрдЧрд░ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЫрд╡рд┐ рдХреЗ 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреИрдорд╛рдиреЛрдВ ( @1x , @2x , @3x) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рд╣реИред

@enguerranws рдореБрдЭреЗ рдПрдХреНрд╕рдкреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИред @gorvinsky рдореИрдВрдиреЗ рдЕрднреА RN 0.61.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП рдЫрд╡рд┐ рдЖрдХрд╛рд░ рдиреЗ рдХрднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рддреЛ рдпрд╣ рдкрд╣рд▓реА рдЪреАрдЬ рдереА рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛ред

рдореИрдВрдиреЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рд╕рдореБрджрд╛рдп/ рдХреНрд▓реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрд░рдПрди 0.61.5 рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╢реЛрдзрди рд╣реИрдВред рдХрд╕реНрдЯрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо рдХреЗ рд╕рд╛рде рдФрд░ рд╕реНрд░реЛрдд рд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ RN рдкреНрд░реЛрдЬреЗрдХреНрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рдЖрд╕рд╛рди рдФрд░ рддреНрд╡рд░рд┐рдд рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдирдбреАрдХреЗ рд╕рдВрд╢реЛрдзрди 21 рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ yarn 1.21 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдХреЛрдЬрд╝ рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИред

рдЬреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА:
рдПрдирдкреАрдПрдо рдЯреЗрдореНрдкреНрд▓реЗрдЯ: @lytrax/react-native-fresco

рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

npx @react-native-community/cli<strong i="17">@next</strong> init --template=@lytrax/react-native-fresco <ProjectName>

README рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред рдЖрдкрдХреЛ yarn fresco-setup рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдХреЛ рдХреНрд▓реЛрди/рдкреИрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ Android NDK рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ Android NDK рдкрде рдХреЗ рд╕рд╛рде android/libraries/fresco/local.properties ред

рдХреНрдпрд╛ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдореЗрдВ рдпрд╣ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ? (рдЕрднреА рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рдирд╣реАрдВ)

https://github.com/facebook/react-native/commit/f535c8b4bb4474ffe0a0765270cbca8d839deca8

рд╡рд┐рд╡рд░рдг рдореЗрдВ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ PipelineConfig рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ "setDownsampleEnabled" рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред

https://frescolib.org/docs/configure-image-pipeline.html

@enguerranws рдореБрдЭреЗ рдПрдХреНрд╕рдкреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИред @gorvinsky рдореИрдВрдиреЗ рдЕрднреА RN 0.61.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП рдЫрд╡рд┐ рдЖрдХрд╛рд░ рдиреЗ рдХрднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рддреЛ рдпрд╣ рдкрд╣рд▓реА рдЪреАрдЬ рдереА рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛ред

рдореИрдВрдиреЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рд╕рдореБрджрд╛рдп/ рдХреНрд▓реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрд░рдПрди 0.61.5 рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╢реЛрдзрди рд╣реИрдВред рдХрд╕реНрдЯрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо рдХреЗ рд╕рд╛рде рдФрд░ рд╕реНрд░реЛрдд рд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ RN рдкреНрд░реЛрдЬреЗрдХреНрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рдЖрд╕рд╛рди рдФрд░ рддреНрд╡рд░рд┐рдд рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдирдбреАрдХреЗ рд╕рдВрд╢реЛрдзрди 21 рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ yarn 1.21 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдХреЛрдЬрд╝ рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИред

рдЬреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА:
рдПрдирдкреАрдПрдо рдЯреЗрдореНрдкреНрд▓реЗрдЯ: @lytrax/react-native-fresco

рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

npx @react-native-community/cli<strong i="18">@next</strong> init --template=@lytrax/react-native-fresco <ProjectName>

README рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред рдЖрдкрдХреЛ yarn fresco-setup рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдХреЛ рдХреНрд▓реЛрди/рдкреИрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ Android NDK рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ Android NDK рдкрде рдХреЗ рд╕рд╛рде android/libraries/fresco/local.properties ред

рдХреНрдпрд╛ рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

@kalmahik
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред (рдореЗрд░рд╛ рдЖрд░рдПрди v0.61.4 рд╣реИ)
рдпрд╣ рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ @clytras 'рдкреИрдЪ
рдФрд░ рдпрд╣ рдЕрдм рдПрдВрдбреНрд░реЙрдЗрдб рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд╣рдореЗрд╢рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ

  1. рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВредjson
"fresco-clone": "git clone https://github.com/facebook/fresco.git android/libraries/fresco && cd android/libraries/fresco && git checkout tags/v2.1.0",
"fresco-patch": "yarn file-patch ./patches/DecodeProducer.java.diff android/libraries/fresco/imagepipeline/src/main/java/com/facebook/imagepipeline/producers/DecodeProducer.java",
"fresco-setup": "yarn fresco-clone && yarn fresco-patch"
  1. рдкреИрдЪ рдмрдирд╛рдПрдВ/DecodeProducer.java.diff

'рдпрд╛рд░реНрди рдлреНрд░реЗрд╕реНрдХреЛ-рдкреИрдЪ'

рдкрд░рд┐рдгрд╛рдо

@@ -7279,32 +7279,35 @@

+// 
 if (mDownsampleE
@@ -7381,24 +7381,27 @@

+// 
   ImageReque
@@ -7460,24 +7460,27 @@

+// 
   if (mDowns
@@ -7513,24 +7513,27 @@

+ //
        %7C%7C !U
@@ -7587,36 +7587,39 @@

+//

+ 
 encodedImage.set
@@ -7637,32 +7637,35 @@
 %0A               
+ //
          Downsam
@@ -7700,32 +7700,35 @@
 %0A               
+ //
              req
@@ -7762,32 +7762,35 @@

+// 
             requ
@@ -7820,32 +7820,35 @@
 %0A               
+ //
              enc
@@ -7866,32 +7866,35 @@

+// 
             maxB
@@ -7914,32 +7914,35 @@

+// 
   %7D%0A            
@@ -7937,32 +7937,35 @@

+// 
 %7D%0A%0A             
@@ -7962,24 +7962,27 @@

+ //
  if (produce
@@ -8002,28 +8002,31 @@

+//

+ 
 .getImagePip
@@ -8050,24 +8050,27 @@

+ //
      .getExp
@@ -8091,24 +8091,27 @@

+ //
      .should
@@ -8151,24 +8151,27 @@

+// 
   maybeIncre
@@ -8206,32 +8206,35 @@
 %0A               
+ //
  %7D%0A%0A            
  1. рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ android/settings.gradle

includeBuild ('libraries/fresco') рд╕реЗ рдкрд╣рд▓реЗ include ':app'

rootProject.name = 'YOURPROJECT'
...
includeBuild ('libraries/fresco') 

include ':app'

  1. android/build.gradle

рдЙрдкрдпреЛрдЧ рдЧреНрд░реЗрдбреЗрд▓ рдирд┐рд░реНрднрд░рддрд╛ 3.4.1 . рд╣реИ

dependencies {
  ...
  classpath("com.android.tools.build:gradle:3.4.1")
  ...
}
  1. рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ

yarn fresco-setup

  1. рдПрдВрдбреНрд░реЙрдЗрдб рдПрдирдбреАрдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдореИрдВрдиреЗ r21 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

https://developer.android.com/ndk/downloads

  1. рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ рдФрд░ ndk . рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ

рдЕрдирдЬрд╝рд┐рдк рдПрдирдбреАрдХреЗ
рдореИрдВрдиреЗ ndk рдХреЛ Users/YOURNAME/Library/Android/android-ndk-r21 рдЕрдирдЬрд╝рд┐рдк рдХрд░ рджрд┐рдпрд╛
рдФрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ android/libraries/fresco/local.properties рдмрдирд╛рдПрдВ

ndk.dir=/Users/YOURNAME/Library/Android/android-ndk-r21
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
  1. рдПрдВрдбреНрд░реЙрдЗрдб рдЪрд▓рд╛рдПрдВ

рдмрд╕ рдЗрддрдирд╛ рд╣реАред

yarn android рдФрд░ рдмрдбрд╝реА рдЫрд╡рд┐ рдЧреБрдгрд╡рддреНрддрд╛ рдЬрд╛рдВрдЪреЗрдВред

@clytras . рдХреЛ рдзрдиреНрдпрд╡рд╛рдж

https://github.com/clytras/react-native-fresco

@ рдЬреЗрдлрдЧреБрдХрд╛рдВрдЧ
file-patch рдХрдорд╛рдВрдб рдХреНрдпрд╛ рд╣реИ?

рдЗрд╕реЗ рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рд╕реЗ рдХреНрдпрд╛ рд░реЛрдХ рд░рд╣рд╛ рд╣реИ? рд╣рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрди рдкреИрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕рдордп рдХреА рдмрд╛рдзрд╛ рдирд╣реАрдВ рд╣реИ - рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ, рдзрдХреНрдХрд╛ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)?

@kalmahik file-patch рдПрдХ NPM рдкреИрдХреЗрдЬ CLI рдкреИрдЪ рдЯреВрд▓ рд╣реИред

@JeffGuKang рдЖрдкрдХреЛ package.json рдореЗрдВ рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗрдЯрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред

@CaptainN рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рдореЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рд╣реИред

@clytras рдУрд╣ рдпрд╣ рдПрдХ ? рдзрдиреНрдпрд╡рд╛рдж)

@kalmahik
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред (рдореЗрд░рд╛ рдЖрд░рдПрди v0.61.4 рд╣реИ)
рдпрд╣ рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ @clytras 'рдкреИрдЪ
рдФрд░ рдпрд╣ рдЕрдм рдПрдВрдбреНрд░реЙрдЗрдб рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд╣рдореЗрд╢рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ

  1. рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВредjson
"fresco-clone": "git clone https://github.com/facebook/fresco.git android/libraries/fresco && cd android/libraries/fresco && git checkout tags/v2.1.0",
"fresco-patch": "yarn file-patch ./patches/DecodeProducer.java.diff android/libraries/fresco/imagepipeline/src/main/java/com/facebook/imagepipeline/producers/DecodeProducer.java",
"fresco-setup": "yarn fresco-clone && yarn fresco-patch"
  1. рдкреИрдЪ рдмрдирд╛рдПрдВ/DecodeProducer.java.diff

'рдпрд╛рд░реНрди рдлреНрд░реЗрд╕реНрдХреЛ-рдкреИрдЪ'

рдкрд░рд┐рдгрд╛рдо

@@ -7279,32 +7279,35 @@

+// 
 if (mDownsampleE
@@ -7381,24 +7381,27 @@

+// 
   ImageReque
@@ -7460,24 +7460,27 @@

+// 
   if (mDowns
@@ -7513,24 +7513,27 @@

+ //
        %7C%7C !U
@@ -7587,36 +7587,39 @@

+//

+ 
 encodedImage.set
@@ -7637,32 +7637,35 @@
 %0A               
+ //
          Downsam
@@ -7700,32 +7700,35 @@
 %0A               
+ //
              req
@@ -7762,32 +7762,35 @@

+// 
             requ
@@ -7820,32 +7820,35 @@
 %0A               
+ //
              enc
@@ -7866,32 +7866,35 @@

+// 
             maxB
@@ -7914,32 +7914,35 @@

+// 
   %7D%0A            
@@ -7937,32 +7937,35 @@

+// 
 %7D%0A%0A             
@@ -7962,24 +7962,27 @@

+ //
  if (produce
@@ -8002,28 +8002,31 @@

+//

+ 
 .getImagePip
@@ -8050,24 +8050,27 @@

+ //
      .getExp
@@ -8091,24 +8091,27 @@

+ //
      .should
@@ -8151,24 +8151,27 @@

+// 
   maybeIncre
@@ -8206,32 +8206,35 @@
 %0A               
+ //
  %7D%0A%0A            
  1. рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ android/settings.gradle

includeBuild ('libraries/fresco') рд╕реЗ рдкрд╣рд▓реЗ include ':app'

rootProject.name = 'YOURPROJECT'
...
includeBuild ('libraries/fresco') 

include ':app'
  1. android/build.gradle

рдЙрдкрдпреЛрдЧ рдЧреНрд░реЗрдбреЗрд▓ рдирд┐рд░реНрднрд░рддрд╛ 3.4.1 . рд╣реИ

dependencies {
  ...
  classpath("com.android.tools.build:gradle:3.4.1")
  ...
}
  1. рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ

yarn fresco-setup

  1. рдПрдВрдбреНрд░реЙрдЗрдб рдПрдирдбреАрдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдореИрдВрдиреЗ r21 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

https://developer.android.com/ndk/downloads

  1. рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ рдФрд░ ndk . рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ

рдЕрдирдЬрд╝рд┐рдк рдПрдирдбреАрдХреЗ
рдореИрдВрдиреЗ ndk рдХреЛ Users/YOURNAME/Library/Android/android-ndk-r21 рдЕрдирдЬрд╝рд┐рдк рдХрд░ рджрд┐рдпрд╛
рдФрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ android/libraries/fresco/local.properties рдмрдирд╛рдПрдВ

ndk.dir=/Users/YOURNAME/Library/Android/android-ndk-r21
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
  1. рдПрдВрдбреНрд░реЙрдЗрдб рдЪрд▓рд╛рдПрдВ

рдмрд╕ рдЗрддрдирд╛ рд╣реАред

yarn android рдФрд░ рдмрдбрд╝реА рдЫрд╡рд┐ рдЧреБрдгрд╡рддреНрддрд╛ рдЬрд╛рдВрдЪреЗрдВред

@clytras . рдХреЛ рдзрдиреНрдпрд╡рд╛рдж

https://github.com/clytras/react-native-fresco

@clytras рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рдж рд╕реНрд░реЛрдд рд╕реЗ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ RN(v0.59.9) рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

Screen Shot 2020-05-31 at 1 11 34 PM

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, MainApplication.java рдореЗрдВ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЙрдиреНрдлрд┐рдЧ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХрд┐рд╕реНрдордд рдирд╣реАрдВ

@ ravali121 рдпреЗ рдЪрд░рдг RN>= 0.60.x рдХреЗ рд▓рд┐рдП рд╣реИрдВ, RN 0.59 рдпрд╛ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЗрд╕реЗ рдкреБрд░рд╛рдиреЗ RN рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪрд░рдг рдФрд░ рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдЪреЗрдХрдЖрдЙрдЯ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ RN рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдореИрдВ рдЖрд░рдПрди 0.61 рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрд╕реНрдХреЛ 2.1.0 рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЖрд░рдПрди 0.59 рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдкреИрдЪ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреИрдЪ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ DecodeProducer.java ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреНрд░реЗрдбрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИрдВред

рдпрджреНрдпрдкрд┐ рдЖрдк рдЗрд╕реЗ 0.59 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХрдо рд╕реЗ рдХрдо 0.61 (рдпрд╛ рдмреЗрд╣рддрд░ 0.62) рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВред

рдирдорд╕реНрддреЗ! рдкреИрдЪ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдИрдЯреАрдП рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? (рдзрдиреНрдпрд╡рд╛рдж @clytras рднрдпрд╛рдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЖрдкрдХреЗ рдкреИрдЪ рдХреЛ

@FRizzonelli рдкреИрдЪ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реАрд▓рд┐рдП рдпрд╣ рдореБрджреНрджрд╛ рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЦреБрд▓рд╛ рд░рд╣рддрд╛ рд╣реИред
рдореБрдЭреЗ рдкреИрдЪ рдФрд░ @react-native-community/cli рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд╡реАрдирддрдо RN рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣реИред

@clytras рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ :( рд╕рдорд╕реНрдпрд╛ рдЕрднреА рд╣реИ рдореИрдВ рдПрдХреНрд╕рдкреЛ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рд╡реЗрдм рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рдкреАрдУрд╕реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдмреЗрджрдЦрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП :(

@clytras рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ :( рд╕рдорд╕реНрдпрд╛ рдЕрднреА рд╣реИ рдореИрдВ рдПрдХреНрд╕рдкреЛ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рд╡реЗрдм рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рдкреАрдУрд╕реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдмреЗрджрдЦрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП :(

рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jpg рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рд╛рд░реВрдк png ? рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@clytras рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ :( рд╕рдорд╕реНрдпрд╛ рдЕрднреА рд╣реИ рдореИрдВ рдПрдХреНрд╕рдкреЛ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рд╡реЗрдм рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рдкреАрдУрд╕реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдмреЗрджрдЦрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП :(

рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jpg рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рд╛рд░реВрдк png ? рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╛ рддреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЕрд▓реНрдлрд╛ рдкрд░рдд рдХреЗ рд▓рд┐рдП рдкреАрдПрдирдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :(

рдореБрдЭреЗ рдЖрд░рдПрди 0.63.4 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
960 x 13983 рдХреА рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрд╣реБрдд рдХрдо рдирдореВрдирд╛ рд╣реИ, рдЫрд╡рд┐ рдХреЗ рдкрд╛рда рд╢рд╛рдпрдж рд╣реА рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
680 X 2538 рдХреА рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рднреА рдирдореВрдирд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХрд╛рдлреА рд╕рднреНрдп рд╣реИред
рдореИрдВрдиреЗ рдЫрд╡рд┐ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Image.getSize рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рд╕реЗ рдКрдВрдЪрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХреА (рдЪреМрдбрд╝рд╛рдИ 100% рд╣реИ)
рдЫрд╡рд┐рдпрд╛рдВ рд╕рднреА рдЬреЗрдкреАрдЬреА рд╣реИрдВред
рдореИрдВрдиреЗ @clytras рдХреА рд╡рд┐рдзрд┐ рдХреЛ 3.5.4, NDK 21.4.7075529 рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди, рд╡рд╣реА рдореБрджреНрджрд╛ред

        <Image
          style={{ width: SCREEN_WIDTH, height }}
          resizeMode="contain"
          source={{ uri }}
          resizeMethod="scale"
        />

рд╣рдордиреЗ FastImage рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛ред

 <FastImage
          style={{ width: SCREEN_WIDTH, height: height }}
          source={{
            uri: uri,
            priority: FastImage.priority.normal,
          }}
          resizeMode={FastImage.resizeMode.center}
 />

@JJMoon рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдореИрдВ рд╢реИрд▓реА рдореЗрдВ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реВрдВ рддреЛ FastImage рдХреЛ рдЫрд╡рд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдмрд╛рдзреНрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЫрд╡рд┐ рд╣рдореЗрд╢рд╛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреА рд╣реИ рд▓реЗрдХрд┐рди FastImage рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕рднреА рдХреЛ рдкреНрд░рдгрд╛рдо,

рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рд╕реЗ рд╣рд░ рд╕рдВрднрд╡ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЖрд░рдПрди 0.64.2 рдФрд░ рдлреНрд░реЗрд╕реНрдХреЛ 2.5.0 рдХреЗ рд╕рд╛рдеред
рдореИрдВ NDK v22.1.7171670 рдФрд░ gradle 4.2.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдкрд░ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВ (рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб-рдПрдореБрд▓реЗрдЯрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?):

E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
    Process: com.veerle.wiener.debug, PID: 10813
    java.lang.NoSuchMethodError: No static method initialize(Lcom/facebook/imagepipeline/core/ImagePipelineConfig;)V in class Lcom/facebook/imagepipeline/core/ImagePipelineFactory; or its super classes (declaration of 'com.facebook.imagepipeline.core.ImagePipelineFactory' appears in /data/app/<project>/base.apk!classes16.dex)
        at com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:83)
        at com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:45)
        at com.facebook.react.modules.fresco.FrescoModule.initialize(FrescoModule.java:114)
        at com.facebook.react.bridge.ModuleHolder.doInitialize(ModuleHolder.java:236)
        at com.facebook.react.bridge.ModuleHolder.markInitializable(ModuleHolder.java:100)
        at com.facebook.react.bridge.NativeModuleRegistry.notifyJSInstanceInitialized(NativeModuleRegistry.java:103)
        at com.facebook.react.bridge.CatalystInstanceImpl$2.run(CatalystInstanceImpl.java:438)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)
        at android.os.Looper.loop(Looper.java:223)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)
        at java.lang.Thread.run(Thread.java:923)
I/Process: Sending signal. PID: 10813 SIG: 9

@JJMoon рдиреЗ рд╕реНрдерд╛рдиреАрдп рдЫрд╡рд┐рдпреЛрдВ (рдЖрд╡рд╢реНрдпрдХрддрд╛) рдХреЗ рд╕рд╛рде

рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдЫрд╡рд┐ рдФрд░ FastImage рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
if(height < blurSize){ return <Image/> }else{ return <FastImage/> }

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

eldk picture eldk  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bigfreeZhou picture bigfreeZhou  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zewenwang picture zewenwang  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

goodev picture goodev  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ykostova picture ykostova  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ