我有一个位图,用于在imageview中显示来自Firebase的图像。我希望状态栏和操作栏的颜色都可以通过数据库中图片的鲜艳颜色进行调整。我搜索了如何执行此操作,并在下面添加了以下代码

      Palette.from(myBitmap).generate(new Palette.PaletteAsyncListener() {
        @Override
        public void onGenerated(Palette palette) {

              android.app.ActionBar bar=setBackgrounddrawable(palette.getVibrantColor(getResources().getColor(R.color.colorPrimary)));
             getWindow().setStatusBarColor(palette.getVibrantColor(getResources().getColor(R.colorPrimary)));
        }
    });


但是我在获取操作栏的代码行上收到一条错误消息,提示“设置背景可绘制对象无法应用于int”。当我删除用于设置操作栏颜色的代码行时,仅设置了状态栏颜色,而不设置了操作栏,如何设置操作栏的颜色?

最佳答案

如您所见,setBackgroundDrawable()收到一个参数,类型是Drawable

但是您传入一个Int Color值,则出现错误。



我没有对其进行测试,但是您可以尝试以下方法:

setBackgroundDrawable(new ColorDrawable(palette.getVibrantColor(getResources().getColor(R.color.colorPrimary))));

10-08 16:17