From b175c283b0f4f3d7a49d502ef1b2ffbeabcfc440 Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Thu, 4 Mar 2021 11:59:30 +0800 Subject: [PATCH] Tweak SettingsSpinner UI 1. Arrow icon size from 24 to 18 2. Round corner radius from 20 to 28 3. Height from 32 to 36 4. Set accentColor background to default view. 5. Set translucent accentColor background to default dropdown view. 6. Set dropdown view vertical offset to measured height. Bug: 181833196 Test: manual visual Change-Id: Ia538fd1831602ff38ba873c7f0a34d1ad5e90e18 --- ...drop_down_24dp.xml => arrow_drop_down.xml} | 8 ++--- .../drawable/settings_spinner_background.xml | 16 ++++----- .../settings_spinner_dropdown_background.xml | 33 +++++++++++++++++++ .../layout/settings_spinner_dropdown_view.xml | 25 ++++++++++++++ .../res/layout/settings_spinner_view.xml | 4 +-- .../SettingsSpinner/res/values/dimens.xml | 20 +++++++++++ .../SettingsSpinner/res/values/styles.xml | 10 ++++-- .../settingsspinner/SettingsSpinner.java | 9 ++++- .../SettingsSpinnerAdapter.java | 3 +- 9 files changed, 107 insertions(+), 21 deletions(-) rename packages/SettingsLib/SettingsSpinner/res/drawable/{arrow_drop_down_24dp.xml => arrow_drop_down.xml} (85%) create mode 100644 packages/SettingsLib/SettingsSpinner/res/drawable/settings_spinner_dropdown_background.xml create mode 100644 packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_dropdown_view.xml create mode 100644 packages/SettingsLib/SettingsSpinner/res/values/dimens.xml diff --git a/packages/SettingsLib/SettingsSpinner/res/drawable/arrow_drop_down_24dp.xml b/packages/SettingsLib/SettingsSpinner/res/drawable/arrow_drop_down.xml similarity index 85% rename from packages/SettingsLib/SettingsSpinner/res/drawable/arrow_drop_down_24dp.xml rename to packages/SettingsLib/SettingsSpinner/res/drawable/arrow_drop_down.xml index 827d0b583388e..054452629c88f 100644 --- a/packages/SettingsLib/SettingsSpinner/res/drawable/arrow_drop_down_24dp.xml +++ b/packages/SettingsLib/SettingsSpinner/res/drawable/arrow_drop_down.xml @@ -16,11 +16,11 @@ --> - \ No newline at end of file + android:fillColor="@android:color/black"/> + diff --git a/packages/SettingsLib/SettingsSpinner/res/drawable/settings_spinner_background.xml b/packages/SettingsLib/SettingsSpinner/res/drawable/settings_spinner_background.xml index 263c16b0749c5..b38e3e3e89c19 100644 --- a/packages/SettingsLib/SettingsSpinner/res/drawable/settings_spinner_background.xml +++ b/packages/SettingsLib/SettingsSpinner/res/drawable/settings_spinner_background.xml @@ -24,21 +24,21 @@ android:bottom="8dp"> + android:radius="28dp"/> + android:color="?android:attr/colorAccent"/> + android:height="@dimen/spinner_height"/> + android:width="18dp" + android:height="18dp" + android:end="8dp" + android:drawable="@drawable/arrow_drop_down"/> \ No newline at end of file diff --git a/packages/SettingsLib/SettingsSpinner/res/drawable/settings_spinner_dropdown_background.xml b/packages/SettingsLib/SettingsSpinner/res/drawable/settings_spinner_dropdown_background.xml new file mode 100644 index 0000000000000..8cac988632bc3 --- /dev/null +++ b/packages/SettingsLib/SettingsSpinner/res/drawable/settings_spinner_dropdown_background.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + diff --git a/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_dropdown_view.xml b/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_dropdown_view.xml new file mode 100644 index 0000000000000..a342c840cfbe9 --- /dev/null +++ b/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_dropdown_view.xml @@ -0,0 +1,25 @@ + + + + diff --git a/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_view.xml b/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_view.xml index bdd370fe04ee5..75de34e86bc47 100644 --- a/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_view.xml +++ b/packages/SettingsLib/SettingsSpinner/res/layout/settings_spinner_view.xml @@ -19,7 +19,5 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="@style/SettingsSpinnerTitleBar" - android:maxLines="1" android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:ellipsize="marquee"/> + android:layout_height="wrap_content"/> diff --git a/packages/SettingsLib/SettingsSpinner/res/values/dimens.xml b/packages/SettingsLib/SettingsSpinner/res/values/dimens.xml new file mode 100644 index 0000000000000..d526df6bedd47 --- /dev/null +++ b/packages/SettingsLib/SettingsSpinner/res/values/dimens.xml @@ -0,0 +1,20 @@ + + + + + 36dp + 8dp + diff --git a/packages/SettingsLib/SettingsSpinner/res/values/styles.xml b/packages/SettingsLib/SettingsSpinner/res/values/styles.xml index 8af20e20ede94..f665f3836002d 100644 --- a/packages/SettingsLib/SettingsSpinner/res/values/styles.xml +++ b/packages/SettingsLib/SettingsSpinner/res/values/styles.xml @@ -18,9 +18,13 @@ - \ No newline at end of file + diff --git a/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/settingsspinner/SettingsSpinner.java b/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/settingsspinner/SettingsSpinner.java index 5ef8f7ac792bb..0be80a9fd4660 100644 --- a/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/settingsspinner/SettingsSpinner.java +++ b/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/settingsspinner/SettingsSpinner.java @@ -121,4 +121,11 @@ public class SettingsSpinner extends Spinner { int mode) { super(context, attrs, defStyleAttr, defStyleRes, mode, null); } -} \ No newline at end of file + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + setDropDownVerticalOffset(getMeasuredHeight() - (int) getContext().getResources() + .getDimension(R.dimen.spinner_padding_top_or_bottom)); + } +} diff --git a/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/settingsspinner/SettingsSpinnerAdapter.java b/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/settingsspinner/SettingsSpinnerAdapter.java index a8ca0d8664f3f..83da512ce8797 100644 --- a/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/settingsspinner/SettingsSpinnerAdapter.java +++ b/packages/SettingsLib/SettingsSpinner/src/com/android/settingslib/widget/settingsspinner/SettingsSpinnerAdapter.java @@ -30,8 +30,7 @@ import com.android.settingslib.widget.R; public class SettingsSpinnerAdapter extends ArrayAdapter { private static final int DEFAULT_RESOURCE = R.layout.settings_spinner_view; - private static final int DFAULT_DROPDOWN_RESOURCE = - android.R.layout.simple_spinner_dropdown_item; + private static final int DFAULT_DROPDOWN_RESOURCE = R.layout.settings_spinner_dropdown_view; private final LayoutInflater mDefaultInflater; /**