Сделал через 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);
}
});
}