1.不同预览模式2.计算出缩放比3.固定滚动偏移关键代码overviewratioW getChildRect().width / getParentRect().widthratioH getChildRect().height / getParentRect().heightmaxRatio max(ratioW, ratioH)if(maxRatio 1)return 1elsereturn 1/maxRatiooldViewCenter viewCenterOffsetreal:if(bInit) { // 重置if(childOutline.height parentOutline.height)oldViewCenter.fY viewCenterOffset.fY;elseoldViewCenter.fY viewCenterOffset.fY (childOutline.height - parentOutline.height) / 2; //顶部对齐} else { // 滚动后拉伸if(refParentOutline.top refChildOutline.top) //上次就无溢出oldViewCenter.fY viewCenterOffset.fY (childOutline.height - parentOutline.height) / 2; //顶部对齐else {overflowLen refParentOutline.top - refChildOutline.top //溢出长度if(childOutline.height - overflowLen parentOutline.height) //溢出后下面留白oldViewCenter.fY parentOutline.bottom - childOutline.bottom // 底部对齐elseoldViewCenter.fY parentOutline.top - overflowLen - childOutline.top // 顶部溢出对齐}}创作不易小小的支持一下吧