Android - Как программно установить цвет значка AlertDialog? - PullRequest
0 голосов
/ 13 мая 2018

Я хочу использовать один и тот же значок (который является vector) с различными цветами, программно устанавливая его цвет, как мы делаем, благодаря свойству android:tint.

Вот builder, который устанавливает значок AlertDialog:

builder.setIcon(android.R.drawable.ic_dialog_info);

Есть ли способ сделать это? Нужно ли нам снова создавать ту же иконку, если мы хотим использовать ее с другим цветом?

1 Ответ

0 голосов
/ 13 мая 2018

Вы можете получить ImageView и установить ColorFilter.попробуйте код ниже.Посмотрите, работает ли он так, как ожидалось.

            AlertDialog.Builder builder = new AlertDialog.Builder(DemoActivity.this);
            builder.setMessage("Message");
            builder.setTitle("Title");
            builder.setIcon(android.R.drawable.ic_dialog_info);
            AlertDialog dialog = builder.create();
            dialog.show();
            ImageView imageView = dialog.findViewById(android.R.id.icon);
            if (imageView != null)
                imageView.setColorFilter(Color.BLUE, android.graphics.PorterDuff.Mode.SRC_IN);
...