我以编程方式创建了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
我在做错了什么?如果有人知道解决方案,请帮助我
感谢
答案 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);