我创建了一个扩展Android的Text视图的类。我试图水平和垂直居中文本。文本显示为水平居中但不垂直居中。
我试过了两个:
setGravity(Gravity.CENTER);
和
setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
我的课程如下:
public class NumberView extends TextView
{
private Paint circlePaint;
private int radius;
public NumberView(Context context)
{
super(context);
setText("0");
circlePaint = new Paint();
circlePaint.setColor(Color.BLUE);
// setGravity(Gravity.CENTER);
setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
setBackgroundColor(Color.rgb(0xf1, 0xf1, 0xf1));
setTypeface(null, Typeface.BOLD);
setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);
}
@Override
protected void onDraw(Canvas canvas) {
// draw circle at center of canvas
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
radius = Math.min(width, height);
radius /= 2;
canvas.drawCircle(width/2, height/2, radius, circlePaint);
//super.onDraw(canvas);
}
}
我正在添加NumberView作为ExpandableList视图的一部分。下面是我如何将布局的可扩展列表视图:
listView = new ExpandableListView(this);
listView.setAdapter(listAdapter);
TextView emptyView = new TextView(this);
listView.setEmptyView(emptyView);
mainLayout.addView(listView,
new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT , 2));
答案 0 :(得分:1)
TextView emptyView = new TextView(this);
将此更改为
NumberView numberView=new NumberView(this);
答案 1 :(得分:0)
您必须使用您创建的NumberView类而不是TextView 它会起作用,你也必须在NumberView上设置参数。