Zoomlayout: рдЬрд╝реВрдорд▓реЗрдЖрдЙрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ/рдКрдВрдЪрд╛рдИ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрдВрджреНрд░-рдлрд╕рд▓ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЕрдХреНрддреВре░ 2020  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: natario1/ZoomLayout

рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ

  • рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдВрд╕реНрдХрд░рдг: 1.8.0
  • рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЗрдореЛ рдРрдк рдореЗрдВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп: рд╣рд╛рдБ
  • рдбрд┐рд╡рд╛рдЗрд╕ / Android рд╕рдВрд╕реНрдХрд░рдг: рдкрд┐рдХреНрд╕реЗрд▓ 3, рдПрдкреАрдЖрдИ 29

рдореИрдВ рдЪрд┐рддреНрд░/рдкрд░рд┐рджреГрд╢реНрдп рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝реВрдорд▓рд╛рдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЬрд╝реВрдо рдФрд░ рдУрд╡рд░рд╕реНрдХреНрд░реЙрд▓ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ CenterCrop рдХреЗ рд╕рд╛рде рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдкреИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдПрдХ рд╕рдордп рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рджрд┐рд╢рд╛ рдкреИрди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛ (рдХреНрдпреЛрдВрдХрд┐ рдЬрд╝реВрдо рдЕрдХреНрд╖рдо рд╣реИ)ред рдпрд╣ рдореБрдЭреЗ рдЫрд╡рд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдкреИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕рдордЭрд╛ рд╣реИ, рд╕реЗрдВрдЯрд░рдХреНрд░реЙрдк рдпрд╛ рддреЛ containerHeight рд╕реЗ childHeight рдпрд╛ containerWidth рд╕реЗ childWidth рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рд╣реА? рдПрдХ рд╡рд░реНрдЧ ImageView рдореЗрдВ рд▓реИрдВрдбрд╕реНрдХреЗрдк/рдкреЛрд░реНрдЯреНрд░реЗрдЯ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рд▓реИрдВрдбрд╕реНрдХреЗрдк рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, childHeight рдХреЛ рд╕реЗрдВрдЯрд░рдХреНрд░реЙрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП containerHeight рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЕрдм, рдкреИрди рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣, рдкреЛрд░реНрдЯреНрд░реЗрдЯ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреИрди рдХреЛ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди, рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдЬрд╝реВрдорд▓рд╛рдЙрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ/рдКрдВрдЪрд╛рдИ рдмрджрд▓рддрд╛ рд╣реВрдВ, рддреЛ рдкрд░рд┐рд╡рд░реНрддрди рдмрд╛рд▓ рджреГрд╢реНрдп рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

val layoutParams = zoomLayout.layoutParams
layoutParams.width = layoutParams.width + changedWidth
layoutParams.height = layoutParams.height + changedHeight
zoomLayout.layoutParams = layoutParams

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

рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо, рд╕рдВрднрд╡рддрдГ рдбреЗрдореЛ рдРрдк рдореЗрдВ:

  1. рдЬрд╝реВрдо рдФрд░ рдУрд╡рд░рд╕реНрдХреНрд░реЙрд▓ рдЕрдХреНрд╖рдо рдХрд░реЗрдВред
  2. рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рд▓рдВрдмрд╡рдд рдХреЗ рд▓рд┐рдП рдкреИрди рд╕рдХреНрд╖рдо рдХрд░реЗрдВред
  3. XML рдореЗрдВ ZoomLayout рдореЗрдВ рдЪрд╛рдЗрд▓реНрдб рд╡реНрдпреВ рд░рдЦреЗрдВред рд╕рд╛рдордЧреНрд░реА рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреМрдбрд╝рд╛рдИ/рдКрдВрдЪрд╛рдИ рд░рдЦреЗрдВред
  4. рдЦреАрдВрдЪрдиреЗ рдпреЛрдЧреНрдп рдПрдХ рд▓рдВрдмрд╛ рд▓реИрдВрдбрд╕реНрдХреЗрдк рдЬреЛрдбрд╝реЗрдВред 780 x 180 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  5. XML рдореЗрдВ ZoomLayout рдореЗрдВ рдЪрд╛рдЗрд▓реНрдб рд╡реНрдпреВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдбреНрд░реЙрдПрдмрд▓ рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВред
  6. рднрд╛рдЧреЛ, рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдкреИрди рдХрд░реЗрдВред
  7. рдЬрд╝реВрдорд▓реЗрдЖрдЙрдЯ рдХреА рдКрдВрдЪрд╛рдИ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЯрди рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред рдмрдЪреНрдЪреЗ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдЬрдм рдХрдВрдЯреЗрдирд░ рдХреА рдКрдВрдЪрд╛рдИ рдмрджрд▓рддреА рд╣реИ, рддреЛ рд╕реЗрдВрдЯрд░рдХреНрд░реЙрдк рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рдЗрд▓реНрдб рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХреНрд╕рдПрдордПрд▓ рд▓реЗрдЖрдЙрдЯ (рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЬрд╝реВрдорд▓реЗрдЖрдЙрдЯ)

init {
    setHorizontalPanEnabled(true)
    setVerticalPanEnabled(true)

    setOverScrollHorizontal(false)
    setOverScrollVertical(false)

    setAlignment(Alignment.TOP or Alignment.LEFT)
    setHasClickableChildren(true)
    setTransformation(
        ZoomApi.TRANSFORMATION_CENTER_CROP,
        ZoomApi.TRANSFORMATION_GRAVITY_AUTO
    )

    setZoomEnabled(false)
}

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

Screenshot
Screenshot

рд▓реЙрдЧреНрд╕

рд╢реБрд░реВ

I/ZoomLayout: setHasClickableChildren: old: false new: false
I/ZoomLayout: setHasClickableChildren: old: false new: true

рдмрдЪреНрдЪреЗ рдкрд░ рдЦреАрдВрдЪрдиреЗ рдпреЛрдЧреНрдп рдХреНрд╖реИрддрд┐рдЬ рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЛрдб рдХрд░реЗрдВред

W/ZoomEngine: onMatrixSizeChanged: firstTime: true oldZoom: NaN transformation: 1 transformationZoom: 0.0
I/ZoomEngine: computeTransformationZoom centerCrop scaleX: 1.0042135 scaleY: 5.860656
I/ZoomEngine: onMatrixSizeChanged: newTransformationZoom: 5.860656 newRealZoom: 5.8606563 newZoom: 1.0000001

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╝реВрдорд▓рд╛рдЙрдЯ рдКрдВрдЪрд╛рдИ рдмрдврд╝рд╛рдПрдВред

W/ZoomEngine: onMatrixSizeChanged: firstTime: false oldZoom: 5.8606563 transformation: 1 transformationZoom: 5.860656
I/ZoomEngine: computeTransformationZoom centerCrop scaleX: 1.0042135 scaleY: 6.2704916
I/ZoomEngine: onMatrixSizeChanged: newTransformationZoom: 6.2704916 newRealZoom: 5.8606563 newZoom: 0.93464065

рд╕реЗрдВрдЯрд░рдХреНрд░реЙрдк рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЗ рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

APK

рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкреНрд░рдЬрдирди рдЪрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

enhancement discussion

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

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

zoomLayout.layoutParams = layoutParams
zoomLayout.engine.setContainerSize(layoutParams.width, layoutParams.height, true)

рдпрд╛ рд╢рд╛рдпрдж рдРрд╕реЗ

zoomLayout.layoutParams = layoutParams
zoomLayout.post {
    zoomLayout.engine.setContainerSize(layoutParams.width, layoutParams.height, true)
}

рд╣рдо рдЗрд╕реЗ рд╕рд┐рдВрдХрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди () рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ

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

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

val layoutParams = zoomLayout.layoutParams
layoutParams.width = layoutParams.width + changedWidth
layoutParams.height = layoutParams.height + changedHeight
zoomLayout.layoutParams = layoutParams

zoomLayout.engine.setContainerSize(
    layoutParams.width.toFloat(),
    layoutParams.height.toFloat(),
    applyTransformation = false // not applying transformation
)

рдФрд░, ZoomLayout рдХреЗ onGlobalLayout() рдореЗрдВ рдПрдХ рдФрд░ рдмрджрд▓рд╛рд╡

engine.setContentSize(
    child.width.toFloat(), 
    child.height.toFloat(),
    applyTransformation = true // <-- this change
)

рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдорджрдж рдорд┐рд▓рддреА рд╣реИред рд╕реЗрдВрдЯрд░рдХреНрд░реЙрдк рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЗ рдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдпрд╣ рдХреЛрдб #185 рдЕрдВрдХ рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдЕрдм рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкреИрди рд░реАрд╕реЗрдЯ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ (рд╕рдВрдХреЗрдд#рд╡реИрд╢реНрд╡рд┐рдХ-рд▓реЗрдЖрдЙрдЯ)ред

рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЕрднреА рднреА рдЬрд╝реВрдорд▓рд╛рдЙрдЯ рдХреЛ рдХрдВрдЯреЗрдирд░ рдЪреМрдбрд╝рд╛рдИ/рдКрдВрдЪрд╛рдИ рдмрджрд▓рдиреЗ рдкрд░ рдмрдЪреНрдЪреЗ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд░ рдореИрдВ рд╣реИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВ, рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдФрд░ рдмрдЧ рд╣реЛрдВрдЧреЗред рдЖрдкрдиреЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЖрдк рдореБрдЭрд╕реЗ рдмреЗрд╣рддрд░ рдЬрд╛рдирддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдореЗрд░рд╛ рдорд╛рд░реНрдЧ рджрд░реНрд╢рди рдХреАрдЬрд┐рдПред

рд╡рд┐рд╕реНрддреГрдд рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рдЬрд╝реВрдорд▓рд╛рдЙрдЯ рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдореБрджреНрджрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдЕрдкрдиреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛, рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ @ natario1ред рдЗрд╕рд▓рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдпрд╣ рдПрдХ рдмрдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╣реИред

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

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

zoomLayout.layoutParams = layoutParams
zoomLayout.engine.setContainerSize(layoutParams.width, layoutParams.height, true)

рдпрд╛ рд╢рд╛рдпрдж рдРрд╕реЗ

zoomLayout.layoutParams = layoutParams
zoomLayout.post {
    zoomLayout.engine.setContainerSize(layoutParams.width, layoutParams.height, true)
}

рд╣рдо рдЗрд╕реЗ рд╕рд┐рдВрдХрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди () рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ

@markusressel рдареАрдХ рд╣реИ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБред рд╕рд╛рде рд╣реА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЬреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдХреЗрд╡рд▓ 25% рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдирд╛ рд╣реИред рдореБрдЭреЗ рдХреЗрд╡рд▓ рддрд╡реЗ рдФрд░ рдлрд╝реНрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдордзреНрдп-рдлрд╕рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдХрд░реЗрдВред рдзрдиреНрдпрд╡рд╛рджред

рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЖрдХрд╛рд░ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╕рд╛рдордЧреНрд░реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╝реВрдо/рдкреИрди рдХреА рдЧрдИ рдереА, рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

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

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

рдЖрдкрдХреЗ рд╕рд╣рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЦреЗрдж рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрд╛ред

@rupinderjeet рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╕рдВрд╢реЛрдзрд┐рдд LayoutParams рдХреЛ ZoomLayout рдЙрджрд╛рд╣рд░рдг рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдореБрдЭреЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ:

java.lang.RuntimeException: ZoomLayout must be used with fixed dimensions (e.g. match_parent)

рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?

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

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

aouledissa picture aouledissa  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

wakaztahir picture wakaztahir  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

Yahor10 picture Yahor10  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ