无法着色工具栏图标

时间:2015-09-06 19:32:22

标签: android colors android-resources

我正在尝试使用this class更改我的工具栏/操作栏图标颜色。

我正在使用片段。

我的代码:

MenuColorizer.colorMenu(getActivity(), menu, ContextCompat.getColor(getContext(), android.R.attr.textColorPrimary));

错误:

android.content.res.Resources$NotFoundException: Resource ID #0x1010036
            at android.content.res.Resources.getValue(Resources.java:2354)
            at android.content.res.Resources.getColor(Resources.java:2036)
            at android.support.v4.content.ContextCompat.getColor(ContextCompat.java:368)
            at com.mysite.app.MyFragment.onCreateOptionsMenu(MyFragment.java:49)
            at android.support.v4.app.Fragment.performCreateOptionsMenu(Fragment.java:2044)
            at android.support.v4.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:2063)
            at android.support.v4.app.FragmentController.dispatchCreateOptionsMenu(FragmentController.java:270)
            at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:263)
            at android.support.v7.internal.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:85)
            at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onCreatePanelMenu(AppCompatDelegateImplBase.java:267)
            at android.support.v7.internal.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:85)
            at android.support.v7.internal.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:448)
            at android.support.v7.internal.app.ToolbarActionBar$1.run(ToolbarActionBar.java:65)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5593)
            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:1283)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
            at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:0)

问题解决了! 我不知道为什么我忽略了this answer 我必须承认,我陷入了绝望,因为我没有找到答案,于是决定在这里问。

现在我有:

int[] attribute = new int[] { android.R.attr.textColorPrimary };
TypedArray array = getContext().getTheme().obtainStyledAttributes(attribute);
int color = array.getColor(0, Color.TRANSPARENT);
array.recycle();

MenuColorizer.colorMenu(getActivity(), menu, color);