diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index d04bbcda945bf..c269ea3b2b75e 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -4697,10 +4697,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, */ void onInitializeAccessibilityNodeInfoInternal(AccessibilityNodeInfo info) { Rect bounds = mAttachInfo.mTmpInvalRect; + final float applicationScale = mAttachInfo.mApplicationScale; + getDrawingRect(bounds); + bounds.scale(applicationScale); info.setBoundsInParent(bounds); getBoundsOnScreen(bounds); + bounds.scale(applicationScale); info.setBoundsInScreen(bounds); ViewParent parent = getParentForAccessibility(); diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java index 02bcf1e4c0697..eabcb807404eb 100644 --- a/core/java/android/widget/NumberPicker.java +++ b/core/java/android/widget/NumberPicker.java @@ -2421,14 +2421,22 @@ public class NumberPicker extends LinearLayout { info.setParent((View) getParentForAccessibility()); info.setEnabled(NumberPicker.this.isEnabled()); info.setScrollable(true); + + final float applicationScale = + getContext().getResources().getCompatibilityInfo().applicationScale; + Rect boundsInParent = mTempRect; boundsInParent.set(left, top, right, bottom); + boundsInParent.scale(applicationScale); info.setBoundsInParent(boundsInParent); + info.setVisibleToUser(isVisibleToUser()); + Rect boundsInScreen = boundsInParent; int[] locationOnScreen = mTempArray; getLocationOnScreen(locationOnScreen); boundsInScreen.offset(locationOnScreen[0], locationOnScreen[1]); + boundsInScreen.scale(applicationScale); info.setBoundsInScreen(boundsInScreen); if (mAccessibilityFocusedView != View.NO_ID) {