android:dynamic更改代码中的FAB(浮动操作button)图标

如何在运行期间更改活动中的FAB图标。 我有这个代码 – >

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabMainActivity); 

我知道这是可能的使用fab.setBackgroundDrawable(); 但我是Android的新手,不明白如何做到这一点。

任何帮助将不胜感激。

谢谢

Solutions Collecting From Web of "android:dynamic更改代码中的FAB(浮动操作button)图标"

更改FloatingActionButton来源:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { floatingActionButton.setImageDrawable(getResources().getDrawable(R.drawable.ic_full_sad, context.getTheme())); } else { floatingActionButton.setImageDrawable(getResources().getDrawable(R.drawable.ic_full_sad)); } 

这可以replace为支持库中的以下代码:

 floatingActionButton.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_full_sad)); 

或者您使用支持库:

 floatingActionButton.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_full_sad)); 

如果您正在使用支持库:

 floatingActionButton.setImageResource(R.drawable.icon_name) 

我正在使用如下,

 FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab_btn); // State 1 -on fab.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.fab_on)); // State 2 - off fab.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.fab_off)); 

假设您将使用图像ic_arrow_forward.png作为您的晶圆厂的背景:

fab.setImageResource(R.mipmap.ic_arrow_forward);