Loading core/java/android/view/View.java +7 −0 Original line number Diff line number Diff line Loading @@ -17332,6 +17332,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * <li>{@link android.view.View.MeasureSpec#AT_MOST}</li> * </ul> * * <p><strong>Note:</strong> On API level 17 and lower, makeMeasureSpec's * implementation was such that the order of arguments did not matter * and overflow in either value could impact the resulting MeasureSpec. * {@link android.widget.RelativeLayout} was affected by this bug. * Apps targeting API levels greater than 17 will get the fixed, more strict * behavior.</p> * * @param size the size of the measure specification * @param mode the mode of the measure specification * @return the measure specification based on size and mode core/java/android/widget/ImageView.java +8 −1 Original line number Diff line number Diff line Loading @@ -234,8 +234,15 @@ public class ImageView extends View { /** * Set this to true if you want the ImageView to adjust its bounds * to preserve the aspect ratio of its drawable. * * <p><strong>Note:</strong> If the application targets API level 17 or lower, * adjustViewBounds will allow the drawable to shrink the view bounds, but not grow * to fill available measured space in all cases. This is for compatibility with * legacy {@link android.view.View.MeasureSpec MeasureSpec} and * {@link android.widget.RelativeLayout RelativeLayout} behavior.</p> * * @param adjustViewBounds Whether to adjust the bounds of this view * to presrve the original aspect ratio of the drawable * to preserve the original aspect ratio of the drawable. * * @see #getAdjustViewBounds() * Loading core/java/android/widget/RelativeLayout.java +15 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,21 @@ import static android.util.Log.d; * {@link #ALIGN_PARENT_BOTTOM}. * </p> * * <p><strong>Note:</strong> In platform version 17 and lower, RelativeLayout was affected by * a measurement bug that could cause child views to be measured with incorrect * {@link android.view.View.MeasureSpec MeasureSpec} values. (See * {@link android.view.View.MeasureSpec#makeMeasureSpec(int, int) MeasureSpec.makeMeasureSpec} * for more details.) This was triggered when a RelativeLayout container was placed in * a scrolling container, such as a ScrollView or HorizontalScrollView. If a custom view * not equipped to properly measure with the MeasureSpec mode * {@link android.view.View.MeasureSpec#UNSPECIFIED UNSPECIFIED} was placed in a RelativeLayout, * this would silently work anyway as RelativeLayout would pass a very large * {@link android.view.View.MeasureSpec#AT_MOST AT_MOST} MeasureSpec instead.</p> * * <p>This behavior has been preserved for apps that set <code>android:targetSdkVersion="17"</code> * or older in their manifest's <code>uses-sdk</code> tag for compatibility. Apps targeting SDK * version 18 or newer will receive the correct behavior</p> * * <p>See the <a href="{@docRoot}guide/topics/ui/layout/relative.html">Relative * Layout</a> guide.</p> * Loading Loading
core/java/android/view/View.java +7 −0 Original line number Diff line number Diff line Loading @@ -17332,6 +17332,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * <li>{@link android.view.View.MeasureSpec#AT_MOST}</li> * </ul> * * <p><strong>Note:</strong> On API level 17 and lower, makeMeasureSpec's * implementation was such that the order of arguments did not matter * and overflow in either value could impact the resulting MeasureSpec. * {@link android.widget.RelativeLayout} was affected by this bug. * Apps targeting API levels greater than 17 will get the fixed, more strict * behavior.</p> * * @param size the size of the measure specification * @param mode the mode of the measure specification * @return the measure specification based on size and mode
core/java/android/widget/ImageView.java +8 −1 Original line number Diff line number Diff line Loading @@ -234,8 +234,15 @@ public class ImageView extends View { /** * Set this to true if you want the ImageView to adjust its bounds * to preserve the aspect ratio of its drawable. * * <p><strong>Note:</strong> If the application targets API level 17 or lower, * adjustViewBounds will allow the drawable to shrink the view bounds, but not grow * to fill available measured space in all cases. This is for compatibility with * legacy {@link android.view.View.MeasureSpec MeasureSpec} and * {@link android.widget.RelativeLayout RelativeLayout} behavior.</p> * * @param adjustViewBounds Whether to adjust the bounds of this view * to presrve the original aspect ratio of the drawable * to preserve the original aspect ratio of the drawable. * * @see #getAdjustViewBounds() * Loading
core/java/android/widget/RelativeLayout.java +15 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,21 @@ import static android.util.Log.d; * {@link #ALIGN_PARENT_BOTTOM}. * </p> * * <p><strong>Note:</strong> In platform version 17 and lower, RelativeLayout was affected by * a measurement bug that could cause child views to be measured with incorrect * {@link android.view.View.MeasureSpec MeasureSpec} values. (See * {@link android.view.View.MeasureSpec#makeMeasureSpec(int, int) MeasureSpec.makeMeasureSpec} * for more details.) This was triggered when a RelativeLayout container was placed in * a scrolling container, such as a ScrollView or HorizontalScrollView. If a custom view * not equipped to properly measure with the MeasureSpec mode * {@link android.view.View.MeasureSpec#UNSPECIFIED UNSPECIFIED} was placed in a RelativeLayout, * this would silently work anyway as RelativeLayout would pass a very large * {@link android.view.View.MeasureSpec#AT_MOST AT_MOST} MeasureSpec instead.</p> * * <p>This behavior has been preserved for apps that set <code>android:targetSdkVersion="17"</code> * or older in their manifest's <code>uses-sdk</code> tag for compatibility. Apps targeting SDK * version 18 or newer will receive the correct behavior</p> * * <p>See the <a href="{@docRoot}guide/topics/ui/layout/relative.html">Relative * Layout</a> guide.</p> * Loading