diff options
author | Ben <benjamin.duvivier@djit.fr> | 2016-04-04 16:14:47 +0200 |
---|---|---|
committer | Ben <benjamin.duvivier@djit.fr> | 2016-04-04 16:14:47 +0200 |
commit | 2ca2933e7a2be0695bb359c4ea7e1a9f9a35bc0d (patch) | |
tree | b4aa93986ff7ae49a87fc8373cedf28671e26de4 | |
parent | 60d7005f6d7093e632964c9f052d07fb46f0dd2c (diff) | |
download | android_external_ahbottomnavigation-2ca2933e7a2be0695bb359c4ea7e1a9f9a35bc0d.tar.gz android_external_ahbottomnavigation-2ca2933e7a2be0695bb359c4ea7e1a9f9a35bc0d.tar.bz2 android_external_ahbottomnavigation-2ca2933e7a2be0695bb359c4ea7e1a9f9a35bc0d.zip |
Resources instance retrieved at one place
-rw-r--r-- | ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java | 67 |
1 files changed, 35 insertions, 32 deletions
diff --git a/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java b/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java index 81b45e1..bebb8ef 100644 --- a/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java +++ b/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigation.java @@ -2,6 +2,7 @@ package com.aurelhubert.ahbottomnavigation; import android.animation.Animator; import android.content.Context; +import android.content.res.Resources; import android.graphics.Color; import android.graphics.Typeface; import android.graphics.drawable.Drawable; @@ -43,6 +44,7 @@ public class AHBottomNavigation extends FrameLayout { // Variables private Context context; + private Resources resources; private ArrayList<AHBottomNavigationItem> items = new ArrayList<>(); private ArrayList<View> views = new ArrayList<>(); private View backgroundColorView; @@ -112,6 +114,7 @@ public class AHBottomNavigation extends FrameLayout { * Init */ private void init() { + resources = context.getResources(); accentColor = ContextCompat.getColor(context, R.color.colorAccent); inactiveColor = ContextCompat.getColor(context, R.color.colorInactive); notificationTextColor = ContextCompat.getColor(context, android.R.color.white); @@ -123,13 +126,13 @@ public class AHBottomNavigation extends FrameLayout { private void initViews() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - setElevation(context.getResources().getDimension(R.dimen.bottom_navigation_elevation)); + setElevation(resources.getDimension(R.dimen.bottom_navigation_elevation)); setClipToPadding(false); } ViewGroup.LayoutParams params = getLayoutParams(); params.width = ViewGroup.LayoutParams.MATCH_PARENT; - params.height = (int) context.getResources().getDimension(R.dimen.bottom_navigation_height); + params.height = (int) resources.getDimension(R.dimen.bottom_navigation_height); if (getParent() instanceof CoordinatorLayout && behaviorTranslationEnabled) { ((CoordinatorLayout.LayoutParams) params).setBehavior(new AHBottomNavigationBehavior()); } @@ -161,7 +164,7 @@ public class AHBottomNavigation extends FrameLayout { linearLayout.setOrientation(LinearLayout.HORIZONTAL); linearLayout.setGravity(Gravity.CENTER); - int layoutHeight = (int) context.getResources().getDimension(R.dimen.bottom_navigation_height); + int layoutHeight = (int) resources.getDimension(R.dimen.bottom_navigation_height); LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, layoutHeight); addView(linearLayout, layoutParams); @@ -181,13 +184,13 @@ public class AHBottomNavigation extends FrameLayout { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - float height = context.getResources().getDimension(R.dimen.bottom_navigation_height); - float minWidth = context.getResources().getDimension(R.dimen.bottom_navigation_min_width); - float maxWidth = context.getResources().getDimension(R.dimen.bottom_navigation_max_width); + float height = resources.getDimension(R.dimen.bottom_navigation_height); + float minWidth = resources.getDimension(R.dimen.bottom_navigation_min_width); + float maxWidth = resources.getDimension(R.dimen.bottom_navigation_max_width); if (forceTitlesDisplay && items.size() > MIN_ITEMS) { - minWidth = context.getResources().getDimension(R.dimen.bottom_navigation_small_inactive_min_width); - maxWidth = context.getResources().getDimension(R.dimen.bottom_navigation_small_inactive_max_width); + minWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_min_width); + maxWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_max_width); } int layoutWidth = getWidth(); @@ -202,11 +205,11 @@ public class AHBottomNavigation extends FrameLayout { itemWidth = maxWidth; } - float activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_active); - float inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_inactive); + float activeSize = resources.getDimension(R.dimen.bottom_navigation_text_size_active); + float inactiveSize = resources.getDimension(R.dimen.bottom_navigation_text_size_inactive); if (forceTitlesDisplay && items.size() > MIN_ITEMS) { - activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_active); - inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_inactive); + activeSize = resources.getDimension(R.dimen.bottom_navigation_text_size_forced_active); + inactiveSize = resources.getDimension(R.dimen.bottom_navigation_text_size_forced_inactive); } for (int i = 0; i < items.size(); i++) { @@ -226,7 +229,7 @@ public class AHBottomNavigation extends FrameLayout { } if (i == currentItem) { - int activePaddingTop = (int) context.getResources() + int activePaddingTop = (int) resources .getDimension(R.dimen.bottom_navigation_margin_top_active); if (view.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) { ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) icon.getLayoutParams(); @@ -280,9 +283,9 @@ public class AHBottomNavigation extends FrameLayout { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - float height = context.getResources().getDimension(R.dimen.bottom_navigation_height); - float minWidth = context.getResources().getDimension(R.dimen.bottom_navigation_small_inactive_min_width); - float maxWidth = context.getResources().getDimension(R.dimen.bottom_navigation_small_inactive_max_width); + float height = resources.getDimension(R.dimen.bottom_navigation_height); + float minWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_min_width); + float maxWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_max_width); int layoutWidth = getWidth(); if (layoutWidth == 0 || items.size() == 0) { @@ -297,7 +300,7 @@ public class AHBottomNavigation extends FrameLayout { itemWidth = maxWidth; } - float difference = context.getResources().getDimension(R.dimen.bottom_navigation_small_selected_width_difference); + float difference = resources.getDimension(R.dimen.bottom_navigation_small_selected_width_difference); selectedItemWidth = itemWidth + items.size() * difference; itemWidth -= difference; notSelectedItemWidth = itemWidth; @@ -314,7 +317,7 @@ public class AHBottomNavigation extends FrameLayout { title.setText(item.getTitle(context)); if (i == currentItem) { - int activeMarginTop = (int) context.getResources() + int activeMarginTop = (int) resources .getDimension(R.dimen.bottom_navigation_small_margin_top_active); if (view.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) { ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) icon.getLayoutParams(); @@ -372,15 +375,15 @@ public class AHBottomNavigation extends FrameLayout { return; } - int activeMarginTop = (int) context.getResources().getDimension(R.dimen.bottom_navigation_margin_top_active); - int inactiveMarginTop = (int) context.getResources().getDimension(R.dimen.bottom_navigation_margin_top_inactive); - int notificationActiveMarginLeft = (int) context.getResources().getDimension(R.dimen.bottom_navigation_notification_margin_left_active); - int notificationInactiveMarginLeft = (int) context.getResources().getDimension(R.dimen.bottom_navigation_notification_margin_left); - float activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_active); - float inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_inactive); + int activeMarginTop = (int) resources.getDimension(R.dimen.bottom_navigation_margin_top_active); + int inactiveMarginTop = (int) resources.getDimension(R.dimen.bottom_navigation_margin_top_inactive); + int notificationActiveMarginLeft = (int) resources.getDimension(R.dimen.bottom_navigation_notification_margin_left_active); + int notificationInactiveMarginLeft = (int) resources.getDimension(R.dimen.bottom_navigation_notification_margin_left); + float activeSize = resources.getDimension(R.dimen.bottom_navigation_text_size_active); + float inactiveSize = resources.getDimension(R.dimen.bottom_navigation_text_size_inactive); if (forceTitlesDisplay && items.size() > MIN_ITEMS) { - activeSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_active); - inactiveSize = context.getResources().getDimension(R.dimen.bottom_navigation_text_size_forced_inactive); + activeSize = resources.getDimension(R.dimen.bottom_navigation_text_size_forced_active); + inactiveSize = resources.getDimension(R.dimen.bottom_navigation_text_size_forced_inactive); } int itemActiveColor = colored ? ContextCompat.getColor(context, R.color.colorActiveSmall) : @@ -474,10 +477,10 @@ public class AHBottomNavigation extends FrameLayout { return; } - int activeMarginTop = (int) context.getResources().getDimension(R.dimen.bottom_navigation_small_margin_top_active); - int inactiveMargin = (int) context.getResources().getDimension(R.dimen.bottom_navigation_small_margin_top); - int notificationActiveMarginLeft = (int) context.getResources().getDimension(R.dimen.bottom_navigation_notification_margin_left_active); - int notificationInactiveMarginLeft = (int) context.getResources().getDimension(R.dimen.bottom_navigation_notification_margin_left); + int activeMarginTop = (int) resources.getDimension(R.dimen.bottom_navigation_small_margin_top_active); + int inactiveMargin = (int) resources.getDimension(R.dimen.bottom_navigation_small_margin_top); + int notificationActiveMarginLeft = (int) resources.getDimension(R.dimen.bottom_navigation_notification_margin_left_active); + int notificationInactiveMarginLeft = (int) resources.getDimension(R.dimen.bottom_navigation_notification_margin_left); int itemActiveColor = colored ? ContextCompat.getColor(context, R.color.colorActiveSmall) : accentColor; int itemInactiveColor = colored ? ContextCompat.getColor(context, R.color.colorInactiveSmall) : @@ -566,8 +569,8 @@ public class AHBottomNavigation extends FrameLayout { * Update notifications */ private void updateNotifications(boolean updateStyle) { - float textSize = getResources().getDimension(R.dimen.bottom_navigation_notification_text_size); - float textSizeMin = getResources().getDimension(R.dimen.bottom_navigation_notification_text_size_min); + float textSize = resources.getDimension(R.dimen.bottom_navigation_notification_text_size); + float textSizeMin = resources.getDimension(R.dimen.bottom_navigation_notification_text_size_min); for (int i = 0; i < views.size(); i++) { TextView notification = (TextView) views.get(i).findViewById(R.id.bottom_navigation_notification); |