在特定点周围绘制TextView

时间:2014-08-25 15:50:41

标签: android textview

有没有办法让文字围绕某一点居中?因此,例如,如果我想要它在第100个像素周围绘制,那么无论文本的长度如何,它都将使100为中心点,因此如果文本是80像素,则它将从60开始并以140结束,但是如果文本只有50像素,它将从75开始,到125结束。

这是我目前用来绘制文字的代码。

public TextView drawTextView(String text, boolean center, int centerPoint, boolean bold, int topMargin, int leftMargin, int textSize, int color) {
    View vt = new TextView(getBaseContext());
    final TextView textView = new AutoResizeTextView(vt.getContext());

    Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Quicksand-Regular.otf");

    textView.setText(text);
    textView.setTextColor(color);
    if (bold) {
        textView.setTypeface(tf, Typeface.BOLD);
    } else {
        textView.setTypeface(tf);
    }

    textView.setTextSize(textSize);
    textView.setSingleLine(false);

    LayoutParams paramsText = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    paramsText.leftMargin = leftMargin;
    paramsText.topMargin = topMargin;
    container.addView(textView, paramsText);

    return textView;

}

我不确定是否有办法在Android中执行此操作,但是非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

这应该有用。

textView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
int width = textView.getMeasuredWidth();
textView.setX(centerPoint - width * 0.5F)