@asdf999
Android Programmer

Как сделать округлую кнопку в Android (но не rounded corners)?

Как сделать округлую кнопку в Android, не с округлыми углами а именно округлую, как на скрине ниже.
9961158aedee489f8c0eff8c4d8ac8f5.png
Чтобы вне зависимости от высоты содержимого бока были округлые (не углы, а бока).
  • Вопрос задан
  • 347 просмотров
Решения вопроса 1
@asdf999 Автор вопроса
Android Programmer
Сделал через GlobalLayoutListener:

private void addRoundedBackground(final TextView textView, final int color, final int borderColor) {
        textView.getViewTreeObserver().addOnGlobalLayoutListener(
                new ViewTreeObserver.OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {
                        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
                            textView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                        } else {
                            textView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                        }

                        final float height = textView.getHeight();

                        GradientDrawable shape =  new GradientDrawable();
                        shape.setCornerRadius(height/2);
                        shape.setColor(color);
                        shape.setStroke(1, borderColor);

                        textView.setBackgroundDrawable(shape);
                    }
                });
    }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@lomikman
1) Как вариант можно нарисовать овал с помощью canvas (stackoverflow.com/questions/5012685/draw-an-oval-s... а потом перекрыть сверху и снизу двумя view цвета фона.
2) CardView поиграться с corner radius
3) изменить дизайн и не запариваться (оно точно надо?)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы