TextDrawableを使用する際に問題が発生しました - 同じユーザーに同じ色を表示したい場合 - int color2 = generator.getColor("[email protected]");
、私の場合はuserId
をキーとして使用します私が得るものはすべてuserId
のものと同じ色です。私はこれをListViewとRecyclerViewの両方で試しましたが、常に同じ結果になりました。私の連絡先はすべて同じ色を共有しています。TextDrawable - キー(電子メール、ID)に基づいて色を表示
これは私のContactsAdapterからのコードです:私はint color2 = generator.getColor(holder.userName);
を使用している場合
@Override
public void onBindViewHolder(ContactsAdapter.ContactsViewHolder holder, int position) {
Contact contact = contactList.get(position);
holder.userName.setText(contact.getUserName());
TextDrawable.IBuilder builder = TextDrawable.builder()
.beginConfig()
.withBorder(0)
.toUpperCase()
.endConfig()
.round();
ColorGenerator generator = ColorGenerator.MATERIAL;
// generate random color
int color1 = generator.getRandomColor();
// generate color based on a key (same key returns the same color), useful for list/grid views
int color2 = generator.getColor(holder.getItemId());
//int color2 = generator.getColor("[email protected]");
TextDrawable textDrawable = builder.build(contactList.get(position).getUserName().substring(0,1), color2);
holder.thumbNail.setImageDrawable(textDrawable);
}
は、私は同じ名前のために異なる色を取得し、私はint color2 = generator.getColor(holder.getItemId());
を使用する場合、私はすべてのuseridには同じ色を取得します。
あなたはcolor2をチェックしてください。そしてcolor1の値は有効なカラーコードです。 –
@Chetan私がcolor1を使用するとき、私は各ユーザーごとに異なる色を取得します。 – Kemo
これをチェックするために静的なカラーコードを試してみましたか?TextDrawableに問題があるかもしれません。 –