Loading packages/SystemUI/res/layout/keyguard_user_switcher_item.xml +2 −2 Original line number Diff line number Diff line Loading @@ -32,8 +32,8 @@ android:textAppearance="@style/TextAppearance.StatusBar.Expanded.UserSwitcher.UserName" /> <com.android.systemui.statusbar.phone.UserAvatarView android:id="@+id/picture" android:layout_width="48dp" android:layout_height="48dp" android:layout_width="@dimen/max_avatar_size" android:layout_height="@dimen/max_avatar_size" android:contentDescription="@null" sysui:frameWidth="@dimen/keyguard_user_switcher_border_thickness" sysui:activeFrameColor="@color/current_user_border_color" /> Loading packages/SystemUI/res/layout/qs_user_detail_item.xml +2 −2 Original line number Diff line number Diff line Loading @@ -29,8 +29,8 @@ <com.android.systemui.statusbar.phone.UserAvatarView android:id="@+id/user_picture" android:layout_width="48dp" android:layout_height="48dp" android:layout_width="@dimen/max_avatar_size" android:layout_height="@dimen/max_avatar_size" android:layout_marginBottom="12dp" systemui:frameWidth="2dp" systemui:activeFrameColor="@color/current_user_border_color"/> Loading packages/SystemUI/res/values/dimens.xml +4 −0 Original line number Diff line number Diff line Loading @@ -361,4 +361,8 @@ <!-- Battery level padding end when in expanded QS (but not on Keyguard) --> <dimen name="battery_level_padding_end">4dp</dimen> <!-- Largest size an avatar might need to be drawn in the user picker, status bar, or quick settings header --> <dimen name="max_avatar_size">48dp</dimen> </resources> packages/SystemUI/src/com/android/systemui/BitmapHelper.java 0 → 100644 +52 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 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 */ package com.android.systemui; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.Shader; public class BitmapHelper { /** * Generate a new bitmap (width x height pixels, ARGB_8888) with the input bitmap scaled * to fit and clipped to an inscribed circle. * @param input Bitmap to resize and clip * @param width Width of output bitmap (and diameter of circle) * @param height Height of output bitmap * @return A shiny new bitmap for you to use */ public static Bitmap createCircularClip(Bitmap input, int width, int height) { final int inWidth = input.getWidth(); final int inHeight = input.getHeight(); final Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(output); final Paint paint = new Paint(); paint.setShader(new BitmapShader(input, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)); paint.setAntiAlias(true); final RectF srcRect = new RectF(0, 0, inWidth, inHeight); final RectF dstRect = new RectF(0, 0, width, height); final Matrix m = new Matrix(); m.setRectToRect(srcRect, dstRect, Matrix.ScaleToFit.CENTER); canvas.setMatrix(m); canvas.drawCircle(inWidth / 2, inHeight / 2, inWidth / 2, paint); return output; } } packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcher.java +7 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.policy; import com.android.systemui.BitmapHelper; import com.android.systemui.R; import com.android.systemui.statusbar.phone.StatusBarHeaderView; import com.android.systemui.statusbar.phone.UserAvatarView; Loading Loading @@ -176,11 +177,16 @@ public class KeyguardUserSwitcher implements View.OnClickListener { } catch (RemoteException e) { Log.e(TAG, "Couln't get current user.", e); } final int avatarSize = mContext.getResources().getDimensionPixelSize(R.dimen.max_avatar_size); for (int i = 0; i < N; i++) { UserInfo user = users.get(i); if (user.supportsSwitchTo()) { boolean isCurrent = user.id == currentUser; result.add(new UserData(user, mUserManager.getUserIcon(user.id), isCurrent)); final Bitmap picture = BitmapHelper.createCircularClip( mUserManager.getUserIcon(user.id), avatarSize, avatarSize); result.add(new UserData(user, picture, isCurrent)); } } return result; Loading Loading
packages/SystemUI/res/layout/keyguard_user_switcher_item.xml +2 −2 Original line number Diff line number Diff line Loading @@ -32,8 +32,8 @@ android:textAppearance="@style/TextAppearance.StatusBar.Expanded.UserSwitcher.UserName" /> <com.android.systemui.statusbar.phone.UserAvatarView android:id="@+id/picture" android:layout_width="48dp" android:layout_height="48dp" android:layout_width="@dimen/max_avatar_size" android:layout_height="@dimen/max_avatar_size" android:contentDescription="@null" sysui:frameWidth="@dimen/keyguard_user_switcher_border_thickness" sysui:activeFrameColor="@color/current_user_border_color" /> Loading
packages/SystemUI/res/layout/qs_user_detail_item.xml +2 −2 Original line number Diff line number Diff line Loading @@ -29,8 +29,8 @@ <com.android.systemui.statusbar.phone.UserAvatarView android:id="@+id/user_picture" android:layout_width="48dp" android:layout_height="48dp" android:layout_width="@dimen/max_avatar_size" android:layout_height="@dimen/max_avatar_size" android:layout_marginBottom="12dp" systemui:frameWidth="2dp" systemui:activeFrameColor="@color/current_user_border_color"/> Loading
packages/SystemUI/res/values/dimens.xml +4 −0 Original line number Diff line number Diff line Loading @@ -361,4 +361,8 @@ <!-- Battery level padding end when in expanded QS (but not on Keyguard) --> <dimen name="battery_level_padding_end">4dp</dimen> <!-- Largest size an avatar might need to be drawn in the user picker, status bar, or quick settings header --> <dimen name="max_avatar_size">48dp</dimen> </resources>
packages/SystemUI/src/com/android/systemui/BitmapHelper.java 0 → 100644 +52 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 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 */ package com.android.systemui; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.Shader; public class BitmapHelper { /** * Generate a new bitmap (width x height pixels, ARGB_8888) with the input bitmap scaled * to fit and clipped to an inscribed circle. * @param input Bitmap to resize and clip * @param width Width of output bitmap (and diameter of circle) * @param height Height of output bitmap * @return A shiny new bitmap for you to use */ public static Bitmap createCircularClip(Bitmap input, int width, int height) { final int inWidth = input.getWidth(); final int inHeight = input.getHeight(); final Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(output); final Paint paint = new Paint(); paint.setShader(new BitmapShader(input, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)); paint.setAntiAlias(true); final RectF srcRect = new RectF(0, 0, inWidth, inHeight); final RectF dstRect = new RectF(0, 0, width, height); final Matrix m = new Matrix(); m.setRectToRect(srcRect, dstRect, Matrix.ScaleToFit.CENTER); canvas.setMatrix(m); canvas.drawCircle(inWidth / 2, inHeight / 2, inWidth / 2, paint); return output; } }
packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcher.java +7 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.policy; import com.android.systemui.BitmapHelper; import com.android.systemui.R; import com.android.systemui.statusbar.phone.StatusBarHeaderView; import com.android.systemui.statusbar.phone.UserAvatarView; Loading Loading @@ -176,11 +177,16 @@ public class KeyguardUserSwitcher implements View.OnClickListener { } catch (RemoteException e) { Log.e(TAG, "Couln't get current user.", e); } final int avatarSize = mContext.getResources().getDimensionPixelSize(R.dimen.max_avatar_size); for (int i = 0; i < N; i++) { UserInfo user = users.get(i); if (user.supportsSwitchTo()) { boolean isCurrent = user.id == currentUser; result.add(new UserData(user, mUserManager.getUserIcon(user.id), isCurrent)); final Bitmap picture = BitmapHelper.createCircularClip( mUserManager.getUserIcon(user.id), avatarSize, avatarSize); result.add(new UserData(user, picture, isCurrent)); } } return result; Loading