From 594fb98eaa4740fd50d47261d879ca433b559639 Mon Sep 17 00:00:00 2001 From: "sebastien.fleury" Date: Tue, 7 Jul 2015 14:54:54 +0200 Subject: [PATCH] Feature #237 set FloatingMenu background color programmatically --- .../FloatingActionsMenu.java | 10 ++ .../sample/MainActivity.java | 3 +- .../sample/MainActivity.java~ | 97 +++++++++++++++++++ 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 sample/src/main/java/com/getbase/floatingactionbutton/sample/MainActivity.java~ diff --git a/library/src/main/java/com/getbase/floatingactionbutton/FloatingActionsMenu.java b/library/src/main/java/com/getbase/floatingactionbutton/FloatingActionsMenu.java index b5ae2c20..666f3c18 100644 --- a/library/src/main/java/com/getbase/floatingactionbutton/FloatingActionsMenu.java +++ b/library/src/main/java/com/getbase/floatingactionbutton/FloatingActionsMenu.java @@ -144,6 +144,16 @@ public void draw(Canvas canvas) { } } + public void setColorNormalResId(int resId) { + mAddButtonColorNormal=getColor(resId); + mAddButton.setColorNormal(mAddButtonColorNormal); + } + + public void setColorPressedResId(int resId) { + mAddButtonColorPressed=getColor(resId); + mAddButton.setColorPressed(mAddButtonColorPressed); + } + private void createAddButton(Context context) { mAddButton = new AddFloatingActionButton(context) { @Override diff --git a/sample/src/main/java/com/getbase/floatingactionbutton/sample/MainActivity.java b/sample/src/main/java/com/getbase/floatingactionbutton/sample/MainActivity.java index 4928333b..d572dd03 100644 --- a/sample/src/main/java/com/getbase/floatingactionbutton/sample/MainActivity.java +++ b/sample/src/main/java/com/getbase/floatingactionbutton/sample/MainActivity.java @@ -41,9 +41,10 @@ public void onClick(View v) { actionB.setVisibility(actionB.getVisibility() == View.GONE ? View.VISIBLE : View.GONE); } }); - final FloatingActionsMenu menuMultipleActions = (FloatingActionsMenu) findViewById(R.id.multiple_actions); menuMultipleActions.addButton(actionC); + menuMultipleActions.setColorNormalResId(android.R.color.holo_orange_dark); + menuMultipleActions.setColorPressedResId(android.R.color.holo_orange_light); final FloatingActionButton removeAction = (FloatingActionButton) findViewById(R.id.button_remove); removeAction.setOnClickListener(new OnClickListener() { diff --git a/sample/src/main/java/com/getbase/floatingactionbutton/sample/MainActivity.java~ b/sample/src/main/java/com/getbase/floatingactionbutton/sample/MainActivity.java~ new file mode 100644 index 00000000..c88081c4 --- /dev/null +++ b/sample/src/main/java/com/getbase/floatingactionbutton/sample/MainActivity.java~ @@ -0,0 +1,97 @@ +package com.getbase.floatingactionbutton.sample; + +import com.getbase.floatingactionbutton.FloatingActionButton; +import com.getbase.floatingactionbutton.FloatingActionsMenu; + +import android.app.Activity; +import android.graphics.drawable.ShapeDrawable; +import android.graphics.drawable.shapes.OvalShape; +import android.os.Bundle; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Toast; + +public class MainActivity extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + findViewById(R.id.pink_icon).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + Toast.makeText(MainActivity.this, "Clicked pink Floating Action Button", Toast.LENGTH_SHORT).show(); + } + }); + + FloatingActionButton button = (FloatingActionButton) findViewById(R.id.setter); + button.setSize(FloatingActionButton.SIZE_MINI); + button.setColorNormalResId(R.color.pink); + button.setColorPressedResId(R.color.pink_pressed); + button.setIcon(R.drawable.ic_fab_star); + button.setStrokeVisible(false); + + final View actionB = findViewById(R.id.action_b); + + FloatingActionButton actionC = new FloatingActionButton(getBaseContext()); + actionC.setTitle("Hide/Show Action above"); + actionC.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + actionB.setVisibility(actionB.getVisibility() == View.GONE ? View.VISIBLE : View.GONE); + } + }); +<<<<<<< HEAD + + final FloatingActionsMenu menuMultipleActions = (FloatingActionsMenu) findViewById(R.id.multiple_actions); + menuMultipleActions.addButton(actionC); +======= + FloatingActionsMenu actionsMenu = (FloatingActionsMenu) findViewById(R.id.multiple_actions); + actionsMenu.addButton(actionC); + actionsMenu.setColorNormalResId(android.R.color.holo_orange_dark); + actionsMenu.setColorPressedResId(android.R.color.holo_orange_light); +>>>>>>> Feature #237 set FloatingMenu background color programmatically + + final FloatingActionButton removeAction = (FloatingActionButton) findViewById(R.id.button_remove); + removeAction.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + ((FloatingActionsMenu) findViewById(R.id.multiple_actions_down)).removeButton(removeAction); + } + }); + + ShapeDrawable drawable = new ShapeDrawable(new OvalShape()); + drawable.getPaint().setColor(getResources().getColor(R.color.white)); + ((FloatingActionButton) findViewById(R.id.setter_drawable)).setIconDrawable(drawable); + + final FloatingActionButton actionA = (FloatingActionButton) findViewById(R.id.action_a); + actionA.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + actionA.setTitle("Action A clicked"); + } + }); + + // Test that FAMs containing FABs with visibility GONE do not cause crashes + findViewById(R.id.button_gone).setVisibility(View.GONE); + + final FloatingActionButton actionEnable = (FloatingActionButton) findViewById(R.id.action_enable); + actionEnable.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + menuMultipleActions.setEnabled(!menuMultipleActions.isEnabled()); + } + }); + + FloatingActionsMenu rightLabels = (FloatingActionsMenu) findViewById(R.id.right_labels); + FloatingActionButton addedOnce = new FloatingActionButton(this); + addedOnce.setTitle("Added once"); + rightLabels.addButton(addedOnce); + + FloatingActionButton addedTwice = new FloatingActionButton(this); + addedTwice.setTitle("Added twice"); + rightLabels.addButton(addedTwice); + rightLabels.removeButton(addedTwice); + rightLabels.addButton(addedTwice); + } +}