diff options
-rw-r--r-- | res/values-sw600dp-land/dimens.xml | 6 | ||||
-rw-r--r-- | res/values-sw600dp-port/dimens.xml | 1 | ||||
-rw-r--r-- | res/values-sw720dp/dimens.xml | 2 | ||||
-rw-r--r-- | res/values/dimens.xml | 3 | ||||
-rw-r--r-- | res/values/styles.xml | 4 | ||||
-rw-r--r-- | src/com/android/launcher2/BubbleTextView.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher2/CellLayout.java | 67 |
7 files changed, 53 insertions, 32 deletions
diff --git a/res/values-sw600dp-land/dimens.xml b/res/values-sw600dp-land/dimens.xml index 0e7d63cd2..882de23ce 100644 --- a/res/values-sw600dp-land/dimens.xml +++ b/res/values-sw600dp-land/dimens.xml @@ -15,8 +15,9 @@ --> <resources> - <dimen name="app_icon_size">65dp</dimen> - <dimen name="app_icon_padding_top">2dp</dimen> + <dimen name="app_icon_padding_top">0dp</dimen> + <dimen name="app_icon_drawable_padding_land">0dp</dimen> + <integer name="app_icon_scale_percent">90</integer> <!-- Hotseat --> <dimen name="hotseat_cell_width">75dp</dimen> @@ -27,6 +28,7 @@ <dimen name="workspace_cell_height">86dp</dimen> <dimen name="workspace_width_gap">32dp</dimen> <dimen name="workspace_height_gap">0dp</dimen> + <dimen name="workspace_icon_text_size">11sp</dimen> <!-- Folders --> <!-- The size of the image which sits behind the preview of the folder contents --> diff --git a/res/values-sw600dp-port/dimens.xml b/res/values-sw600dp-port/dimens.xml index 8e8455d0e..956599248 100644 --- a/res/values-sw600dp-port/dimens.xml +++ b/res/values-sw600dp-port/dimens.xml @@ -16,6 +16,7 @@ <resources> <!-- Workspace --> + <integer name="app_icon_scale_percent">-1</integer> <dimen name="workspace_width_gap">0dp</dimen> <dimen name="workspace_height_gap">32dp</dimen> diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml index a6402ae79..0fb8d3396 100644 --- a/res/values-sw720dp/dimens.xml +++ b/res/values-sw720dp/dimens.xml @@ -34,7 +34,7 @@ <dimen name="app_widget_preview_padding_top">10dp</dimen> <!-- Size of icons in workspace --> - <dimen name="app_icon_size">72dp</dimen> + <integer name="app_icon_scale_percent">-1</integer> <integer name="app_icon_hotseat_scale_percent">-1</integer> <dimen name="all_apps_button_vertical_padding">4dip</dimen> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 890e2167a..4a69f4aba 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -47,8 +47,10 @@ <dimen name="hotseat_width_gap">-1dp</dimen> <dimen name="hotseat_height_gap">-1dp</dimen> <dimen name="workspace_overscroll_drawable_padding">0dp</dimen> + <dimen name="workspace_icon_text_size">12sp</dimen> <dimen name="app_icon_drawable_padding">6dp</dimen> + <dimen name="app_icon_drawable_padding_land">2dp</dimen> <dimen name="app_icon_padding_top">8dp</dimen> <!-- QSB --> @@ -66,6 +68,7 @@ <dimen name="apps_customize_tab_bar_height">52dp</dimen> <dimen name="apps_customize_tab_bar_margin_top">0dp</dimen> <dimen name="app_icon_size">48dp</dimen> + <integer name="app_icon_scale_percent">-1</integer> <integer name="app_icon_hotseat_scale_percent">-1</integer> <!-- The width can be 72dp because we don't have L/R padding --> <dimen name="apps_customize_cell_width">74dp</dimen> diff --git a/res/values/styles.xml b/res/values/styles.xml index f5224d2eb..6506f955b 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -62,7 +62,7 @@ <item name="android:gravity">center_horizontal</item> <item name="android:singleLine">true</item> <item name="android:ellipsize">marquee</item> - <item name="android:textSize">12sp</item> + <item name="android:textSize">@dimen/workspace_icon_text_size</item> <item name="android:textColor">@color/workspace_icon_text_color</item> <item name="android:shadowRadius">2.0</item> <item name="android:shadowColor">#B0000000</item> @@ -77,7 +77,7 @@ </style> <style name="WorkspaceIcon.Landscape"> - <item name="android:drawablePadding">2dp</item> + <item name="android:drawablePadding">@dimen/app_icon_drawable_padding_land</item> <item name="android:paddingLeft">4dp</item> <item name="android:paddingRight">4dp</item> <item name="android:paddingTop">@dimen/app_icon_padding_top</item> diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java index b41a02e1e..623c6ff0b 100644 --- a/src/com/android/launcher2/BubbleTextView.java +++ b/src/com/android/launcher2/BubbleTextView.java @@ -295,7 +295,7 @@ public class BubbleTextView extends TextView { } // If text is transparent, don't draw any shadow - if (getCurrentTextColor() == android.R.color.transparent) { + if (getCurrentTextColor() == getResources().getColor(android.R.color.transparent)) { getPaint().clearShadowLayer(); super.draw(canvas); return; diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java index bbb0d7f9f..1aaba6db9 100644 --- a/src/com/android/launcher2/CellLayout.java +++ b/src/com/android/launcher2/CellLayout.java @@ -138,6 +138,7 @@ public class CellLayout extends ViewGroup { private boolean mIsHotseat = false; private final int mBubbleScalePercent; + private final int mBubbleHotseatScalePercent; public CellLayout(Context context) { this(context, null); @@ -184,7 +185,8 @@ public class CellLayout extends ViewGroup { mNormalBackground.setFilterBitmap(true); mActiveGlowBackground.setFilterBitmap(true); - mBubbleScalePercent = res.getInteger(R.integer.app_icon_hotseat_scale_percent); + mBubbleScalePercent = res.getInteger(R.integer.app_icon_scale_percent); + mBubbleHotseatScalePercent = res.getInteger(R.integer.app_icon_hotseat_scale_percent); // Initialize the data structures used for the drag visualization. @@ -585,6 +587,34 @@ public class CellLayout extends ViewGroup { return addViewToCellLayout(child, index, childId, params, markCells, false); } + private void scaleChild(BubbleTextView bubbleChild, float pivot, int scalePercent) { + // If we haven't measured the child yet, do it now + // (this happens if we're being dropped from all-apps + if (bubbleChild.getLayoutParams() instanceof LayoutParams && + (bubbleChild.getMeasuredWidth() | bubbleChild.getMeasuredHeight()) == 0) { + getChildrenLayout().measureChild(bubbleChild); + } + int measuredWidth = bubbleChild.getMeasuredWidth(); + int measuredHeight = bubbleChild.getMeasuredHeight(); + + float scale = scalePercent / 100f; + bubbleChild.setPivotX(pivot); + bubbleChild.setPivotY(pivot); + bubbleChild.setScaleX(scale); + bubbleChild.setScaleY(scale); + bubbleChild.setTranslationX(measuredWidth * (1 - scale) / 2); + bubbleChild.setTranslationY(measuredHeight * (1 - scale) / 2); + } + + private void resetChild(BubbleTextView bubbleChild) { + bubbleChild.setScaleX(1f); + bubbleChild.setScaleY(1f); + bubbleChild.setTranslationX(0f); + bubbleChild.setTranslationY(0f); + + bubbleChild.setTextColor(getResources().getColor(R.color.workspace_icon_text_color)); + } + public boolean addViewToCellLayout(View child, int index, int childId, LayoutParams params, boolean markCells, boolean allApps) { final LayoutParams lp = params; @@ -596,32 +626,17 @@ public class CellLayout extends ViewGroup { if (child instanceof BubbleTextView) { BubbleTextView bubbleChild = (BubbleTextView) child; - if (mIsHotseat && !allApps && mBubbleScalePercent >= 0) { - // If we haven't measured the child yet, do it now - // (this happens if we're being dropped from all-apps - if ((bubbleChild.getMeasuredWidth() | bubbleChild.getMeasuredHeight()) == 0) { - getChildrenLayout().measureChild(bubbleChild); - } - int measuredWidth = bubbleChild.getMeasuredWidth(); - int measuredHeight = bubbleChild.getMeasuredHeight(); - - float bubbleScale = mBubbleScalePercent / 100f; - bubbleChild.setPivotX(0); - bubbleChild.setPivotY(0); - bubbleChild.setScaleX(bubbleScale); - bubbleChild.setScaleY(bubbleScale); - bubbleChild.setTranslationX(measuredWidth * (1 - bubbleScale) / 2); - bubbleChild.setTranslationY(measuredHeight * (1 - bubbleScale) / 2); - - bubbleChild.setTextColor(android.R.color.transparent); - } else { - bubbleChild.setScaleX(1f); - bubbleChild.setScaleY(1f); - bubbleChild.setTranslationX(0f); - bubbleChild.setTranslationY(0f); + // Start the child with 100% scale and visible text + resetChild(bubbleChild); + + if (mIsHotseat && !allApps && mBubbleHotseatScalePercent >= 0) { + // Scale/make transparent for a hotseat + scaleChild(bubbleChild, 0f, mBubbleHotseatScalePercent); - bubbleChild.setTextColor( - getResources().getColor(R.color.workspace_icon_text_color)); + bubbleChild.setTextColor(getResources().getColor(android.R.color.transparent)); + } else if (mBubbleScalePercent >= 0) { + // Else possibly still scale it if we need to for smaller icons + scaleChild(bubbleChild, 0f, mBubbleScalePercent); } } |