Giter Club home page Giter Club logo

boommenu's Introduction

BoomMenu

Developer Demo Download Lisense

2.0.0 Comes Finally

Approximately 8 months ago, I got an inspiration to creating something that can boom and show menu, which I named it Boom-Menu-Button, BMB. But at that time, I just a fresh-man in Android, knowing little about designing. The codes I wrote serveral months ago are ugly and performed low-efficient.

Between months, I always think about BMB and try to write a better design pattern for implements of BMB. My first try is BMB-iOS, which contains more family characteristics, for instance, buttons-alignment, text-inside/outside-button.

And now the BMB-Android 2.0.0 comes.

Gradle & Maven

compile 'com.nightonke:boommenu:2.1.1'
<dependency>
  <groupId>com.nightonke</groupId>
  <artifactId>boommenu</artifactId>
  <version>2.1.1</version>
  <type>pom</type>
</dependency>

Demo

Or by link:

Boom V2.1.1 in Github

Boom V2.1.1 in Fir

Wiki

Check the wiki to use BMB.

Documentation Chapters

  1. Basic Usage
    How to use BMB in just several lines of code?
  2. Simple Circle Button
    Add simple circle buttons with just an image for each to BMB.
  3. Text Inside Circle Button
    Add text inside circle buttons with a text and image inside for each to BMB.
  4. Text Outside Circle Button
    Add text outside circle buttons with a text and image outside for each to BMB.
  5. Ham Button
    Add ham buttons with with a title, subtitle and image inside for each to BMB.
  6. Share Style
    Make a share-style BMB.
  7. Custom Position
    Customize the number and positions of pieces and boom-buttons.
  8. Button Place Alignments
    Place all the buttons to anywhere on screen.
  9. Different Ways to Boom
    Different animations when the buttons boom or re-boom.
  10. Ease Animations for Buttons
    Use different and cute ease-animations for buttons.
  11. Different Order for Buttons
    Different order enum for boom-buttons.
  12. Other Animations Attributes for Buttons
    Delay, duration, rotate-degrees, frames...
  13. Click Event and Listener
    Listener for clicking each button or animation-states.
  14. Control BMB
    Boom or re-boom BMB programmatically.
  15. Use BMB in Action Bar
    How to put BMB in action bar?
  16. Use BMB in Tool Bar
    How to put BMB in tool bar?
  17. Use BMB in List
    Matters need attention when you need a BMB in list-view or recycler-view.
  18. Use BMB in Fragment
    Example for use BMB in fragment.
  19. Attributes for BMB or Pieces on BMB
    How to change the size or margins of dots on BMB?
  20. Cache Optimization & Boom Area
    What if I want BMB to boom in just its parent-view?
  21. Change Boom Buttons Dynamically
    Change Boom Buttons Dynamically.
  22. Fade Views
    Add faded views on BMB.
  23. Version History
    What's more for every version?
  24. Structure for BMB
    Structure for BMB when I designed it, for sharing and communicating.

Issues & Feedbacks

Try to tell me the bugs or enhancements about BMB, or contact me with [email protected] / [email protected]. Before doing that, having a careful read on readme, wiki and issues is really helpful.

ReadMe for Version 1.0.9 or Below

If you still wanna use version 1.0.9 or below, you can find the README below:

English README 中文文档

But I strongly suggest you to use the newest version.

boommenu's People

Contributors

gpack1 avatar nightonke avatar zahansafallwa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boommenu's Issues

Can it blur background like BlurLockView

Both BoomMenu and BlurLockView are awesome! Could you add one more option in BoomMenu to blur the background like BlurLock View? When there are too many buttons, it need to blur the background to stress the buttons. Thank you so much!

RTL support

My app is an Arabic app so I force RTL programmatically. When I used Share Fab, it had a strange UI. all dots stick to right of FAB.
It took me several hours to understand how it is drawn then I did some dirty workarounds to fix it in "placeDots()" method and "PlaceParamsFactory.getDotParams()" method

Note:
I use this snippet to enforce RTL:

try { String languageToLoad = "ar"; // your language Locale locale = new Locale(languageToLoad); Locale.setDefault(locale); Configuration config = activity.getResources().getConfiguration(); //config.locale = locale; config.setLocale(locale); activity.getResources().updateConfiguration(config, activity.getResources().getDisplayMetrics()); activity.getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); } catch (Exception ex){ LogUtil.e(ex); }

SubButton hidden in RecyclerView

Hi Nightonke,

I am using Boom Menu in a RecyclerView with three columns. Items in the recyclerview are displayed like a gridview. And every time an item is clicked, a Boom Menu is shooted on the screen.

Things go wrong only for items of the second column. Unfortunately,,when the boom menu contains more than two sub buttons, some of them are not visible, or if there are, then their text disappears instantly.

java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity

用Android Studio 2.1打开在所有layout预览会报错

仔细看下应该是 Util.java 28行和35行的问题?

((Activity)context).getWindowManager().getDefaultDisplay();

详情如下:
java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity
at com.nightonke.boommenu.Util.getScreenWidth(Util.java:28)
at com.nightonke.boommenu.BoomMenuButton.(BoomMenuButton.java:206)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:465)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:172)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:176)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:247)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:171)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:835)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:811)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:229)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:520)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:508)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:967)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:508)
at com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:75)
at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:620)
at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:617)
at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:371)
at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:617)
at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:639)
at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$7.run(AndroidDesignerEditorPanel.java:519)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
at com.intellij.util.ui.update.MergingUpdateQueue$3.run(MergingUpdateQueue.java:271)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:286)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:244)
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:234)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:352)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

的确使用是没问题的,

how to set icon for the fab button itself

Many thanks for great component. I am really exited about it but I have one issue:

I will use this component as a share fab. but from user point of view, there is no indicator that the button in bottom right of screen is used to share content.

I have a suggestion ti give an option to set drawable for the fab button itself.

Cancelling event due to no window focus: MotionEvent

I am doing this in my activity

  `@Override
   public void onWindowFocusChanged(boolean hasFocus) {

    super.onWindowFocusChanged(hasFocus);
    boomMenuButton.init(
            new Drawable[]{ContextCompat.getDrawable(this, R.drawable.like), ContextCompat.getDrawable(this, R.drawable.rate), ContextCompat.getDrawable(this, R.drawable.feedback)}, // The drawables of images of sub buttons. Can not be null.
            new String[]{"Like Us", "Rate Us", "Give Feedback"},     // The texts of sub buttons, ok to be null.
            new int[][]{new int[]{R.color.english, R.color.english}, new int[]{R.color.english, R.color.english}, new int[]{R.color.english, R.color.english}},    // The colors of sub buttons, including pressed-state and normal-state.
            ButtonType.CIRCLE,     // The button type.
            BoomType.PARABOLA,  // The boom type.
            PlaceType.CIRCLE_3_3,  // The place type.
            null,               // Ease type to move the sub buttons when showing.
            null,               // Ease type to scale the sub buttons when showing.
            null,               // Ease type to rotate the sub buttons when showing.
            null,               // Ease type to move the sub buttons when dismissing.
            null,               // Ease type to scale the sub buttons when dismissing.
            null,               // Ease type to rotate the sub buttons when dismissing.
            null                // Rotation degree.
    );
}`

And i get this times in log
Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=294.35156, y[0]=1108.8281, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=440613, downTime=436416, deviceId=0, source=0x1002 }

Boom GridView

Hi there,
I want to implement a gridview with boom effect. means all gridview items will be out from one icon when this icon will be burst. when app is opened.

Boom Menu Colored Dots appears as only one dot.

Build Version: compile 'com.nightonke:boommenu:1.0.7'

Issue Description:
Occasionally, when I run my app, the menu tends to show one single dot on the top right.
After I rerun the app, the multiple dots appear. How to I fix this bug?

Images
boom_icon_all_dots_bug
boom_icon_one_dot_bug

add video tutorials

Hello i was searching on you tube to find videos that state how to implement boom menu i couldn't find could you please add some it will be easier especially for boom in actionbar, thank you.

我觉得这个控件很多弊端,一点扩展性都没有

就比如,实现格文本图片 的居中都这么难,布局里面是居中了,可是我怀疑画于圆角的算法不是这么弄的,怎么搞都是没法让蚊子和图片相对居中。 等于就是您一些限制了条条框框,想跳出去写 还不如自己写一个实现。

Sub Buttons Click Listener

i cant get the index Why?
boomMenuButton.setOnSubButtonClickListener(new BoomMenuButton.OnSubButtonClickListener() {
@OverRide
public void onClick(int buttonIndex) {
// this code dosnt work for me
}
});

Memory optimization needed

Crashlytics reported that 13 crash happened because of out of memory issue.

important stack trace part:

at com.nightonke.boommenu.Util.setCircleButtonStateListDrawable(Util.java:69)
at com.nightonke.boommenu.BoomMenuButton.setBoomButtonBackgroundColor(BoomMenuButton.java:1368)
at com.nightonke.boommenu.BoomMenuButton.(BoomMenuButton.java)

full stack trace:

Fatal Exception: java.lang.RuntimeException
Unable to start activity ComponentInfo{com.tabe3.news/com.tabe3.news.ui.activity.FeedDetailsActivity}: android.view.InflateException: Binary XML file line #259: Error inflating class
raw

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tabe3.news/com.tabe3.news.ui.activity.FeedDetailsActivity}: android.view.InflateException: Binary XML file line #259: Error inflating class
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
at android.app.ActivityThread.access$900(ActivityThread.java:175)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(NativeStart.java)
Caused by android.view.InflateException: Binary XML file line #259: Error inflating class
at android.view.LayoutInflater.createView(LayoutInflater.java:626)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:211)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:695)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
at com.tabe3.news.ui.activity.FeedDetailsActivity.onCreate(FeedDetailsActivity.java:319)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
at android.app.ActivityThread.access$900(ActivityThread.java:175)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(NativeStart.java)
Caused by java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at android.view.LayoutInflater.createView(LayoutInflater.java:600)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:211)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:695)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
at com.tabe3.news.ui.activity.FeedDetailsActivity.onCreate(FeedDetailsActivity.java:319)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
at android.app.ActivityThread.access$900(ActivityThread.java:175)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(NativeStart.java)
Caused by java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Bitmap.java)
at android.graphics.Bitmap.createBitmap(Bitmap.java:928)
at android.graphics.Bitmap.createBitmap(Bitmap.java:901)
at android.graphics.Bitmap.createBitmap(Bitmap.java:868)
at com.nightonke.boommenu.Util.setCircleButtonStateListDrawable(Util.java:69)
at com.nightonke.boommenu.BoomMenuButton.setBoomButtonBackgroundColor(BoomMenuButton.java:1368)
at com.nightonke.boommenu.BoomMenuButton.(BoomMenuButton.java)
at java.lang.reflect.Constructor.constructNative(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at android.view.LayoutInflater.createView(LayoutInflater.java:600)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:211)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:695)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
at com.tabe3.news.ui.activity.FeedDetailsActivity.onCreate(FeedDetailsActivity.java:319)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
at android.app.ActivityThread.access$900(ActivityThread.java:175)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(NativeStart.java)

多个Fragment应用

一个Activity作为容器,包含了几个Fragment,类似于ViewPager形式。不同的Fragment对应的ActionBar 中的BoomMenu不同,如何动态改变?

背景问题

BoomMenuButton能不能设置一个drawable当作背景呢?

Menu is not shown on some devices

There is a strange issue reported by users of my app that when click on share fab, screen dim but menu is not displayed.

this issue is reported on device with details:

VERSION.RELEASE : 5.1.1
VERSION.SDK.NUMBER : 22
BRAND : samsung
MANUFACTURER : samsung
MODEL : SM-N9100

Users sent me a video. give me your mail or send mail to me to reply with the video:
[email protected]

How to change icon size

When i put a drawable and i open the boom menu, the icons are too large hiding the label.

NullPointerException occurred when I click the circleBoomMenuButton sometimes

Whether through the two-dimensional code that the zip contains to download the APK, or by my own sample that uses " compile 'com.nightonke:boommenu:1.0.8'" , the emergence of this issue.
(无论是通过下载您的zip文档里的二维码安装的apk,还是我自己摘出的部分代码,使用了compile 'com.nightonke:boommenu:1.0.8'的方式,在多次点击circleBoomMenuButton时都出现了NullPointerException),错误信息如下
java.lang.NullPointerException
at android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:505)
at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:487)
at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:517)
at android.animation.ValueAnimator.start(ValueAnimator.java:936)
at android.animation.ValueAnimator.start(ValueAnimator.java:946)
at android.animation.ObjectAnimator.start(ObjectAnimator.java:465)
at com.nightonke.boommenu.BoomMenuButton.setHideAnimation(BoomMenuButton.java:1115)
at com.nightonke.boommenu.BoomMenuButton.startHideAnimations(BoomMenuButton.java:1022)
at com.nightonke.boommenu.BoomMenuButton.access$300(BoomMenuButton.java:47)
at com.nightonke.boommenu.BoomMenuButton$2.onClick(BoomMenuButton.java:482)
at android.view.View.performClick(View.java:4632)
at android.view.View$PerformClick.run(View.java:19385)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5348)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
at dalvik.system.NativeStart.main(Native Method)

Null Pointer exception onClick subMenuItem in Actiobar BoomMenu

 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                              Process: com.nightonke.boommenusample, PID: 32358
                                                                              java.lang.NullPointerException: Attempt to invoke virtual method 'android.widget.TextView com.nightonke.boommenu.CircleButton.getTextView()' on a null object reference
                                                                                  at com.nightonke.boommenu.BoomMenuButton.getTextViews(BoomMenuButton.java:1382)
                                                                                  at com.nightonke.boommenusample.MainActivity.onClick(MainActivity.java:641)
                                                                                  at com.nightonke.boommenu.BoomMenuButton.onClick(BoomMenuButton.java:1630)
                                                                                  at com.nightonke.boommenu.CircleButton$1.onClick(CircleButton.java:108)
                                                                                  at android.view.View.performClick(View.java:5269)
                                                                                  at android.view.View$PerformClick.run(View.java:21556)
                                                                                  at android.os.Handler.handleCallback(Handler.java:815)
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                                  at android.os.Looper.loop(Looper.java:207)
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5776)
                                                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

getImageButtons() only returns null

Hello!

I have 7 subButtons of type ButtonType.Circle, but the images are way too large and the text is barely readable because it is too small, when I try to correct this using getImageButtons() it returns an array where this code only prints "null value".

ImageButton[] arr = mAddButton.getImageButtons();
for(int i = 0; i<mAddButton.getImageButtons().length;i++){
    if(arr[i]!=null) {
        arr[i].setPadding(10,10,10,10);
    }else {
        Log.d("v", "nullvalue");
    }
}

A relevant note is that I add the objects using code:

`int count = 1;

    BoomMenuButton.Builder builder = new BoomMenuButton.Builder();
    builder.addSubButton(ContextCompat.getDrawable(getContext(), R.drawable.plus3), colors, "Create new list");

    if(preinfoList!=null) {
        for (QPListPreInfo list : preinfoList) {
            colors[0] = ContextCompat.getColor(getContext(),  preinfoList.color1);
            colors[1] = ContextCompat.getColor(getContext(),  preinfoList.color2);
            builder.addSubButton(ContextCompat.getDrawable(getContext(), R.drawable.shoppingcart), colors, list.getListname());
            count++;
        }
    }
    builder
            .button(ButtonType.CIRCLE)
            .boom(BoomType.PARABOLA_2)
            .place(Constants.getCorrectPlaceType(count))
            .subButtonTextColor(ContextCompat.getColor(getContext(), R.color.white))
            .subButtonsShadow(Util.getInstance().dp2px(2), Util.getInstance().dp2px(2))
            .init(mAddButton);


    mAddButton.setBoomButtonBackgroundColor(Color.rgb(150,230,150),Color.rgb(110,230,110));
    mAddButton.setHideMoveEaseType(EaseType.EaseInCirc);
    mAddButton.setDelay(20);
    mAddButton.setDuration(500);`

如果底部居中 根本没法用

if gravity=center_h** not work 就根本没法用了,我们的项目就是需要做底部居中的这个问题怎么解决呢? main_activity control 不过好像其他的可以我测试的是main_activity 的布局 ,

Remove .idea folder from repo

Hi,
.idea folder is IDE specific settings including personal preferences, it is normally supposed to be excluded from repo(.gitignore).

NullPointerException

I am trying to use BoomMenuButton in a fragment.

My XML,

 <com.nightonke.boommenu.BoomMenuButton
    android:id="@+id/boom"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_margin="@dimen/fab_margin"
    app:boom_button_color="@color/colorPrimary"
    app:boom_button_pressed_color="@color/colorPrimary"
    app:boom_inActionBar="false" />

In onCreateView,

boomMenuButton = (BoomMenuButton) view.findViewById(R.id.boom);

In onWindowFocusChanged,

new BoomMenuButton.Builder()
        .addSubButton(ContextCompat.getDrawable(getContext(), R.drawable.ic_info_outline_white_24dp),
                new int[]{ContextCompat.getColor(getContext(), R.color.white)},
                "BoomMenuButton")
        .addSubButton(ContextCompat.getDrawable(getContext(), R.drawable.ic_info_outline_white_24dp),
                new int[]{ContextCompat.getColor(getContext(), R.color.white)},
                "BoomMenuButton")
        .addSubButton(ContextCompat.getDrawable(getContext(), R.drawable.ic_info_outline_white_24dp),
                new int[]{ContextCompat.getColor(getContext(), R.color.white)},
                "BoomMenuButton")
        .button(ButtonType.HAM)
        .boom(BoomType.PARABOLA)
        .place(PlaceType.HAM_3_1)
        .subButtonTextColor(ContextCompat.getColor(getContext(), R.color.white))
        .init(boomMenuButton);

When I clicked the button, the app crash

java.lang.NullPointerException: Attempt to read from field 'int com.nightonke.boommenu.Types.PlaceType.v' on a null object reference
     at com.nightonke.boommenu.BoomMenuButton.dimAnimationLayout(BoomMenuButton.java:516)
     at com.nightonke.boommenu.BoomMenuButton.shoot(BoomMenuButton.java:467)
     at com.nightonke.boommenu.BoomMenuButton.access$000(BoomMenuButton.java:47)
     at com.nightonke.boommenu.BoomMenuButton$9.onClick(BoomMenuButton.java:1500)
     at android.view.View.performClick(View.java:5197)
     at android.view.View$PerformClick.run(View.java:20926)
     at android.os.Handler.handleCallback(Handler.java:739)
     at android.os.Handler.dispatchMessage(Handler.java:95)
     at android.os.Looper.loop(Looper.java:145)
     at android.app.ActivityThread.main(ActivityThread.java:5951)
     at java.lang.reflect.Method.invoke(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:372)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

Fragment中没有onWindowFocusChanged方法,怎么做?

在Fragment中没有onWindowFocusChanged方法,虽然可以正常初始化,但BoomMenuButton中却失去了子按钮的色值排列,且爆炸原点始终在BoomMenuButton的左上方。
如果使用Activity中的onWindowFocusChanged方法在Fragment里回调,那View在什么地方初始化呢?
求方法破解

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.