android重心不在textview中工作

时间:2015-10-15 11:45:50

标签: android textview gravity

我以编程方式创建了4个文本视图,我在我的布局中添加了它,我有一个问题,重心中心属性不工作。我的意思是当我增加我的textview的文本大小重心中心Repealed.default文本大小是14dp 请检查我的代码段。

private class DigitView extends TextView {
    public DigitView(Context context) {
        this(context, null);
    }

    public DigitView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public DigitView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);


        // If selected draw the accent
        if (isSelected()) {
            this.setBackgroundResource(R.drawable.pincode_background_border_select);

        }
        else
        {
            this.setBackgroundResource(R.drawable.pincode_background_border_unselect);
        }

    }

}




 for (int i = 0; i < mDigits; i++) {
        DigitView digitView = new DigitView(getContext());
        digitView.setWidth(valueInPixels);
        digitView.setHeight(valueInPixels);
        digitView.setTextColor(Color.WHITE);
        digitView.setTextSize(mDigitTextSize);
        digitView.setGravity(Gravity.CENTER);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            digitView.setElevation(mDigitElevation);
        }

        LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        if (i > 0) {
            lp.leftMargin = 10; // margin goes here. Use marginStart instead to support right-to-left layouts
        }
        childView.addView(digitView, lp);
    }

这是我的布局xml代码

<LinearLayout
    android:id="@+id/my_Container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center"
    >


    <LinearLayout
        android:id="@+id/my_Container_child"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         >
    </LinearLayout>

</LinearLayout>



my_Container_child is my layout

this is a result

我在做错了什么?如果有人知道解决方案,请帮助我 感谢

2 个答案:

答案 0 :(得分:1)

试试这个。它会起作用......

<LinearLayout
    android:id="@+id/my_Container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center"
    android:layout_gravity="center"
   >


    <LinearLayout
       android:id="@+id/my_Container_child"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       >
    </LinearLayout>

</LinearLayout>

答案 1 :(得分:0)

不要将修复高度和宽度赋予textview

我认为错误在此代码中

 DigitView digitView = new DigitView(getContext());
 digitView.setWidth(valueInPixels);
 digitView.setHeight(valueInPixels);