diff options
author | Kevin <kevhan@google.com> | 2019-04-25 17:16:53 -0700 |
---|---|---|
committer | Kevin <kevhan@google.com> | 2019-04-25 17:27:01 -0700 |
commit | 90bddf0cf8dc2be8ca02a5bb528a51bd8aa1cf7a (patch) | |
tree | e8e99dc3f00a31b48a56933cfbbbcfe2c273c64c /go/quickstep | |
parent | efe84750930e369763d73a76c647695d7e600bee (diff) | |
download | android_packages_apps_Trebuchet-90bddf0cf8dc2be8ca02a5bb528a51bd8aa1cf7a.tar.gz android_packages_apps_Trebuchet-90bddf0cf8dc2be8ca02a5bb528a51bd8aa1cf7a.tar.bz2 android_packages_apps_Trebuchet-90bddf0cf8dc2be8ca02a5bb528a51bd8aa1cf7a.zip |
Round thumbnail corners
Round the task thumbnail corners as per the mocks by setting the bitmap
as a shader.
Bug: 114136250
Test: See rounded thumbnails on recents Go
Change-Id: I2bf8ebce34deb0d1cb6199cf8f6d5fa6ac746bb8
Diffstat (limited to 'go/quickstep')
4 files changed, 39 insertions, 4 deletions
diff --git a/go/quickstep/res/drawable/default_thumbnail.xml b/go/quickstep/res/drawable/default_thumbnail.xml index 0a2dbf03d..ab22dcf82 100644 --- a/go/quickstep/res/drawable/default_thumbnail.xml +++ b/go/quickstep/res/drawable/default_thumbnail.xml @@ -18,5 +18,5 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@android:color/darker_gray"/> - <corners android:radius="2dp"/> + <corners android:radius="@dimen/task_thumbnail_corner_radius"/> </shape> diff --git a/go/quickstep/res/values/dimens.xml b/go/quickstep/res/values/dimens.xml new file mode 100644 index 000000000..ee154fcaf --- /dev/null +++ b/go/quickstep/res/values/dimens.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2019 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<resources> + <dimen name="task_thumbnail_corner_radius">3dp</dimen> +</resources>
\ No newline at end of file diff --git a/go/quickstep/src/com/android/quickstep/ThumbnailDrawable.java b/go/quickstep/src/com/android/quickstep/ThumbnailDrawable.java index 6ef9039f6..a8cc0a1b8 100644 --- a/go/quickstep/src/com/android/quickstep/ThumbnailDrawable.java +++ b/go/quickstep/src/com/android/quickstep/ThumbnailDrawable.java @@ -16,17 +16,23 @@ package com.android.quickstep; +import static android.graphics.Shader.TileMode.CLAMP; + +import android.content.res.Resources; import android.graphics.Bitmap; +import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.Rect; +import android.graphics.RectF; import android.graphics.drawable.Drawable; import androidx.annotation.NonNull; +import com.android.launcher3.R; import com.android.systemui.shared.recents.model.ThumbnailData; /** @@ -39,11 +45,18 @@ public final class ThumbnailDrawable extends Drawable { private final Paint mPaint = new Paint(); private final Matrix mMatrix = new Matrix(); private final ThumbnailData mThumbnailData; + private final BitmapShader mShader; + private final RectF mDestRect = new RectF(); + private final int mCornerRadius; private int mRequestedOrientation; - public ThumbnailDrawable(@NonNull ThumbnailData thumbnailData, int requestedOrientation) { + public ThumbnailDrawable(Resources res, @NonNull ThumbnailData thumbnailData, + int requestedOrientation) { mThumbnailData = thumbnailData; mRequestedOrientation = requestedOrientation; + mCornerRadius = (int) res.getDimension(R.dimen.task_thumbnail_corner_radius); + mShader = new BitmapShader(mThumbnailData.thumbnail, CLAMP, CLAMP); + mPaint.setShader(mShader); updateMatrix(); } @@ -64,12 +77,13 @@ public final class ThumbnailDrawable extends Drawable { if (mThumbnailData.thumbnail == null) { return; } - canvas.drawBitmap(mThumbnailData.thumbnail, mMatrix, mPaint); + canvas.drawRoundRect(mDestRect, mCornerRadius, mCornerRadius, mPaint); } @Override protected void onBoundsChange(Rect bounds) { super.onBoundsChange(bounds); + mDestRect.set(bounds); updateMatrix(); } @@ -125,5 +139,6 @@ public final class ThumbnailDrawable extends Drawable { } // Scale to fill. mMatrix.postScale(scaleX, scaleY); + mShader.setLocalMatrix(mMatrix); } } diff --git a/go/quickstep/src/com/android/quickstep/views/TaskItemView.java b/go/quickstep/src/com/android/quickstep/views/TaskItemView.java index 0b5ed569c..90192057b 100644 --- a/go/quickstep/src/com/android/quickstep/views/TaskItemView.java +++ b/go/quickstep/src/com/android/quickstep/views/TaskItemView.java @@ -177,7 +177,8 @@ public final class TaskItemView extends LinearLayout { return mDefaultThumbnail; } int orientation = getResources().getConfiguration().orientation; - return new ThumbnailDrawable(thumbnailData, orientation /* requestedOrientation */); + return new ThumbnailDrawable(getResources(), thumbnailData, + orientation /* requestedOrientation */); } private @NonNull String getSafeLabel(@Nullable String label) { |