Set the correct size to the container of icon view
Wrong container size causes some icon to be cropped. Set the icon size specified by spec as the container size to correct it.
Bug: 228928242
Bug: 229954549
Test: Manual resize the split and check the icon on both phone and large
screen device.
Manual drag to split and check the icon on both phone and large
screen device.
Change-Id: I556f2c1a44852439242a16a6216121036b8aed5e
This commit is contained in:
@@ -20,8 +20,8 @@
|
||||
android:layout_width="match_parent">
|
||||
|
||||
<ImageView android:id="@+id/split_resizing_icon"
|
||||
android:layout_height="@*android:dimen/starting_surface_icon_size"
|
||||
android:layout_width="@*android:dimen/starting_surface_icon_size"
|
||||
android:layout_height="@dimen/split_icon_size"
|
||||
android:layout_width="@dimen/split_icon_size"
|
||||
android:layout_gravity="center"
|
||||
android:scaleType="fitCenter"
|
||||
android:padding="0dp"
|
||||
|
||||
@@ -87,6 +87,8 @@
|
||||
<!-- How high we lift the divider when touching -->
|
||||
<dimen name="docked_stack_divider_lift_elevation">4dp</dimen>
|
||||
|
||||
<!-- Icon size for split screen -->
|
||||
<dimen name="split_icon_size">72dp</dimen>
|
||||
<!-- Divider handle size for legacy split screen -->
|
||||
<dimen name="docked_divider_handle_width">16dp</dimen>
|
||||
<dimen name="docked_divider_handle_height">2dp</dimen>
|
||||
|
||||
@@ -73,6 +73,8 @@ public class SplitDecorManager extends WindowlessWindowManager {
|
||||
private Rect mBounds = new Rect();
|
||||
private ValueAnimator mFadeAnimator;
|
||||
|
||||
private int mIconSize;
|
||||
|
||||
public SplitDecorManager(Configuration configuration, IconProvider iconProvider,
|
||||
SurfaceSession surfaceSession) {
|
||||
super(configuration, null /* rootSurface */, null /* hostInputToken */);
|
||||
@@ -104,6 +106,7 @@ public class SplitDecorManager extends WindowlessWindowManager {
|
||||
mHostLeash = rootLeash;
|
||||
mViewHost = new SurfaceControlViewHost(context, context.getDisplay(), this);
|
||||
|
||||
mIconSize = context.getResources().getDimensionPixelSize(R.dimen.split_icon_size);
|
||||
final FrameLayout rootLayout = (FrameLayout) LayoutInflater.from(context)
|
||||
.inflate(R.layout.split_decor, null);
|
||||
mResizingIconView = rootLayout.findViewById(R.id.split_resizing_icon);
|
||||
@@ -171,14 +174,14 @@ public class SplitDecorManager extends WindowlessWindowManager {
|
||||
|
||||
WindowManager.LayoutParams lp =
|
||||
(WindowManager.LayoutParams) mViewHost.getView().getLayoutParams();
|
||||
lp.width = mIcon.getIntrinsicWidth();
|
||||
lp.height = mIcon.getIntrinsicHeight();
|
||||
lp.width = mIconSize;
|
||||
lp.height = mIconSize;
|
||||
mViewHost.relayout(lp);
|
||||
t.setLayer(mIconLeash, Integer.MAX_VALUE);
|
||||
}
|
||||
t.setPosition(mIconLeash,
|
||||
newBounds.width() / 2 - mIcon.getIntrinsicWidth() / 2,
|
||||
newBounds.height() / 2 - mIcon.getIntrinsicWidth() / 2);
|
||||
newBounds.width() / 2 - mIconSize / 2,
|
||||
newBounds.height() / 2 - mIconSize / 2);
|
||||
|
||||
boolean show = newBounds.width() > mBounds.width() || newBounds.height() > mBounds.height();
|
||||
if (show != mShown) {
|
||||
|
||||
@@ -111,8 +111,7 @@ public class DropZoneView extends FrameLayout {
|
||||
mColorDrawable = new ColorDrawable();
|
||||
setBackgroundDrawable(mColorDrawable);
|
||||
|
||||
final int iconSize = context.getResources().getDimensionPixelSize(
|
||||
com.android.internal.R.dimen.starting_surface_icon_size);
|
||||
final int iconSize = context.getResources().getDimensionPixelSize(R.dimen.split_icon_size);
|
||||
mSplashScreenView = new ImageView(context);
|
||||
mSplashScreenView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
addView(mSplashScreenView,
|
||||
|
||||
Reference in New Issue
Block a user