Заголовок панели действий исчезает при настройке изображения - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь установить изображение на панель действий, я использую CircularImagView, чтобы сделать это.

(ScaleType.FIT_END не работает для CircularImageView, но я также пробовал ImageView Тот же результат, даже если ScaleType.FIT_ENDприменяется).

Отлично работает для телефона с большим экраном, но заголовок исчезает для менее широкого телефона.

Например, заголовок отлично подходит для широкого телефона, такого как nexas 5x

nexas 5x

Но не появляется в узком устройстве, как мой физический телефон.

side by side comparison

вот код, который я использую для установки изображения

             try {
                // setting the image in the actionbar
                getSupportActionBar().setDisplayOptions(getSupportActionBar().getDisplayOptions()
                        | ActionBar.DISPLAY_SHOW_CUSTOM);
                CircleImageView imageView = new CircleImageView(getSupportActionBar().getThemedContext());
                //imageView.setScaleType(CircleImageView.ScaleType.FIT_END);
                //imageView.setForegroundGravity(Gravity.RIGHT);
                imageView.setImageBitmap(bitmap);
                getSupportActionBar().setCustomView(imageView);
                // setting the image in actionbar ends here
            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
            }

Даже ScaleType.FIT_END или Gravity.RIGHT не помогают

(ScaleType.FIT_END не работает для CircularImageView, но ятакже пробовал ImageView Тот же результат, даже когда применяется ScaleType.FIT_END).

битовая карта является глобальной переменной, и я устанавливаю ее в onCreate, чтобы сделать вещи менее сложными, я не включил это.

Что может быть решениемдля этого?

1 Ответ

0 голосов
/ 01 марта 2019

По предложению Манохара Редди я создал LinearLayout для создания LayoutParam, установил для него ширину и высоту и установил этот параметр макета для изображения, которое устранило проблему

    try {
                    // setting the image in the actionbar
                    getSupportActionBar().setDisplayOptions(getSupportActionBar().getDisplayOptions()
                            | ActionBar.DISPLAY_SHOW_CUSTOM);
                    CircleImageView imageView = new CircleImageView(getSupportActionBar().getThemedContext());

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(70, 70);
                    imageView.setLayoutParams(layoutParams);
                    imageView.setImageBitmap(bitmap);
                    getSupportActionBar().setCustomView(imageView);
                    // setting the image in actionbar ends here
     } catch (Exception e) {
                    e.printStackTrace();
                    Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
                }

создать новый параметр макета, потому что в xml активности нет изображения, поэтому параметры не могут быть получены.Надеюсь, это кому-нибудь поможет.

...