Update the drag handle icon of window magnification

Screenshot:
b/164005577#comment3

Bug: 164005577
Test: manually test
Change-Id: I00c97d9c99f15a85753b2f3a2b2b099832e6701e
This commit is contained in:
mincheli
2020-08-13 18:06:28 +08:00
parent e9897deb31
commit ca9897feae
3 changed files with 19 additions and 10 deletions

View File

@@ -16,7 +16,7 @@
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<shape android:shape="rectangle">
<solid
android:color="@android:color/black" />
<size

View File

@@ -23,13 +23,13 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/magnification_outer_border_margin"
android:background="@android:color/black" />
android:background="@android:color/black"/>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/magnification_inner_border_margin"
android:background="@color/magnification_border_color" />
android:background="@color/magnification_border_color"/>
<RelativeLayout
android:layout_width="match_parent"
@@ -40,32 +40,32 @@
android:id="@+id/left_handle"
android:layout_width="@dimen/magnification_border_drag_size"
android:layout_height="match_parent"
android:layout_above="@+id/bottom_handle" />
android:layout_above="@+id/bottom_handle"/>
<View
android:id="@+id/top_handle"
android:layout_width="match_parent"
android:layout_height="@dimen/magnification_border_drag_size"
android:layout_alignParentTop="true" />
android:layout_alignParentTop="true"/>
<View
android:id="@+id/right_handle"
android:layout_width="@dimen/magnification_border_drag_size"
android:layout_height="match_parent"
android:layout_above="@+id/bottom_handle"
android:layout_alignParentEnd="true" />
android:layout_alignParentEnd="true"/>
<View
android:id="@+id/bottom_handle"
android:layout_width="match_parent"
android:layout_height="@dimen/magnification_border_drag_size"
android:layout_alignParentBottom="true" />
android:layout_alignParentBottom="true"/>
<SurfaceView
android:id="@+id/surface_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/magnification_mirror_surface_margin" />
android:layout_margin="@dimen/magnification_mirror_surface_margin"/>
</RelativeLayout>
@@ -73,8 +73,9 @@
android:id="@+id/drag_handle"
android:layout_width="@dimen/magnification_drag_view_size"
android:layout_height="@dimen/magnification_drag_view_size"
android:layout_margin="@dimen/magnification_outer_border_margin"
android:layout_gravity="right|bottom"
android:scaleType="center"
android:src="@drawable/ic_move" />
android:src="@drawable/ic_move_magnification"/>
</FrameLayout>

View File

@@ -97,6 +97,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
private SurfaceView mMirrorSurfaceView;
private int mMirrorSurfaceMargin;
private int mBorderDragSize;
private int mDragViewSize;
private int mOuterBorderSize;
// The boundary of magnification frame.
private final Rect mMagnificationFrameBoundary = new Rect();
@@ -109,7 +110,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
WindowMagnificationController(Context context, @NonNull Handler handler,
SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
MirrorWindowControl mirrorWindowControl, SurfaceControl.Transaction transaction,
MirrorWindowControl mirrorWindowControl, SurfaceControl.Transaction transaction,
@NonNull WindowMagnifierCallback callback) {
mContext = context;
mHandler = handler;
@@ -168,6 +169,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
R.dimen.magnification_mirror_surface_margin);
mBorderDragSize = mResources.getDimensionPixelSize(
R.dimen.magnification_border_drag_size);
mDragViewSize = mResources.getDimensionPixelSize(
R.dimen.magnification_drag_view_size);
mOuterBorderSize = mResources.getDimensionPixelSize(
R.dimen.magnification_outer_border_margin);
}
@@ -307,6 +310,10 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
Region regionInsideDragBorder = new Region(mBorderDragSize, mBorderDragSize,
mMirrorView.getWidth() - mBorderDragSize,
mMirrorView.getHeight() - mBorderDragSize);
Rect dragArea = new Rect(mMirrorView.getWidth() - mDragViewSize - mBorderDragSize,
mMirrorView.getHeight() - mDragViewSize - mBorderDragSize,
mMirrorView.getWidth(), mMirrorView.getHeight());
regionInsideDragBorder.op(dragArea, Region.Op.DIFFERENCE);
return regionInsideDragBorder;
}
@@ -555,6 +562,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
/**
* Gets the scale.
*
* @return {@link Float#NaN} if the window is invisible.
*/
float getScale() {