FloatingActionButton中的Android色调图标

fab*_*fab 8 android tint floating-action-button

如何在FloatingActionButton中着色图标资源图像?我试过favoriteFab.setColorFilter(R.color.yellow, PorterDuff.Mode.OVERLAY);但没有成功.

Ros*_*des 8

我假设favoriteFab是你的FloatingActionButton.您可以使用:

int color = ContextCompat.getColor(this, R.color.yellow);
favoriteFab.getDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);
Run Code Online (Sandbox Code Playgroud)


Chr*_*ris 7

如果您使用的是API 21或更高版本,可以像这样设置drawable的颜色色调.

.mFAB.getDrawable()突变()setTint(getResources()的getColor(R.color.yourColor).).

例如

mFAB = (FloatingActionButton) findViewById(R.id.fab);
mFAB.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Snackbar.make(v, "Yummy snackbar", LENGHT_LONG).show();
    }
});
mFAB.getDrawable().mutate().setTint(getResources().getColor(R.color.colorAccent));
Run Code Online (Sandbox Code Playgroud)

更新:由于不推荐使用getColor,您应该使用ContextCompat.使用以下例如:

mFAB.getDrawable().mutate().setTint(ContextCompat.getColor(this, R.color.colorAccent));
Run Code Online (Sandbox Code Playgroud)

  • 它仅适用于API> 21.如果要在较低的API上使用它,请检查我的答案 (2认同)