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);
}