Android系统。 TextView中的文本垂直居中

时间:2015-02-12 14:46:42

标签: java android textview

我有一个ViewGroup类,它可以添加自定义视图并在画布上绘制饼图。在圆圈的中心,我有一个TextView。但无论我做什么,我都无法将TextView中的文本垂直居中。

在这种情况下,Root视图是LinearLayout。

段:

public class PieChart extends ViewGroup {

    public PieChart(Context context) {
        super(context);
        mPieView = new PieView(getContext());
        addView(mPieView);
    }

    ...

    private class PieView extends View {
        public PieView(Context context) {
            super(context);
            text = new TextView(getContext());
            text.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.FILL_PARENT));

            text.setHeight(400);
            text.setText(getCenterTextValue());
            text.setTextColor(Color.BLACK);
            text.setGravity(Gravity.CENTER);
            text.setBackgroundColor(Color.GRAY);


            addView(text);   
        }

        @Override
        protected void onSizeChanged(int w, int h, int oldw, int oldh) {
            text.layout((int)mBoundsInner.left, (int)mBoundsInner.top, (int)mBoundsInner.right, (int)mBoundsInner.bottom);
        }
    }

    ...
}

这就是它在模拟器中的样子。我为演示目的设置了灰色背景,以便您可以看到TextView的边界 Picture of how it looks like in android emulator

这是活动。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ls="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:gravity="center"
    android:orientation="vertical" >

    <com.lifescraper.view.PieChart
        android:id="@+id/Pie"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:width="0dip">

    </com.lifescraper.view.PieChart>

</LinearLayout>

0 个答案:

没有答案