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

    @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);
                        }
                    });
        }
    Ответ написан
    Комментировать