GetTitleTextColor() библиотеки палитр не возвращает соответствующий цвет

Я использую библиотеку палитры, чтобы получить цвет некоторых элементов пользовательского интерфейса. У меня есть некоторый текст об этих элементах пользовательского интерфейса, который я хочу сделать читабельным. Сейчас getTitleTextColor() работает только половину времени.

На темном цвете текст в большинстве случаев также остается темным, и его трудно увидеть: пример. В теории getTitleTextColor() должен возвращать приятный ограничивающий цвет, который легко редактируется, но, очевидно, он не работает.

public void createPaletteAsync(Bitmap bitmap) {
    Palette.from(bitmap)
            .maximumColorCount(14)
            .generate(new Palette.PaletteAsyncListener() {
                public void onGenerated(Palette p) {
                    int colourDominant;
                    int colourFAB;
                    int colourText;
                    int colourTitle;

                    Palette.Swatch swatchDominant = p.getDominantSwatch();
                    colourDominant = swatchDominant.getRgb();
                    List<Palette.Swatch> swatches = p.getSwatches();
                    if(swatches.get(0) != null){
                        Palette.Swatch vibrant = p.getLightMutedSwatch();
                        if(vibrant !=null) {
                            colourFAB = vibrant.getRgb();
                            colourText = vibrant.getBodyTextColor();
                            colourTitle = vibrant.getTitleTextColor();
                        }else {
                            colourFAB = swatches.get(0).getRgb();
                            colourText = swatches.get(0).getBodyTextColor();
                            colourTitle = swatches.get(0).getTitleTextColor();
                        }
                    }else {
                        colourFAB = getResources().getColor(R.color.colorPrimary);
                        colourText = Color.WHITE;
                        colourTitle = Color.WHITE;
                    }
                    setColour(colourDominant, colourFAB, colourText, colourTitle);

                }
            });
}



public void setColour(int colourDominant, int colourFAB, int colourText, int colourTitle){
    FrameLayout fl = (FrameLayout)findViewById(R.id.frameLay);
    fl.setBackgroundColor(colourDominant);
    FloatingActionButton fab = (FloatingActionButton)findViewById(R.id.fullscreenFAB);
    fab.setBackgroundTintList(ColorStateList.valueOf(colourFAB));
    //This changes solor of icons and text labels
    mFavouriteIv.setColorFilter(colourTitle, PorterDuff.Mode.SRC_IN);
    mSaveIv.setColorFilter(colourTitle, PorterDuff.Mode.SRC_IN);
    mSetAsIv.setColorFilter(colourTitle, PorterDuff.Mode.SRC_IN);
    mSaveTv.setTextColor(colourTitle);
    mSetAsTv.setTextColor(colourTitle);
    mFavouriteTv.setTextColor(colourTitle);
    mView1.setBackgroundColor(colourTitle);
    mView2.setBackgroundColor(colourTitle);
}

0 ответов

Другие вопросы по тегам