如何在android的customview上设置textview的位置

时间:2013-01-18 10:07:27

标签: android drawing android-canvas

我使用下面的代码在画布上设置文字。但是现在我想知道如何在布局的底部设置文本的位置..

    LinearLayout layout = new LinearLayout(getContext());
    TextView textView = new TextView(getContext()); 
    textView.setVisibility(View.VISIBLE);
    textView.setText(DetailsActivity.temp_desc);
    textView.setLines(10);
    textView.setSingleLine(false);
    layout.addView(textView);
    layout.measure(canvas.getWidth(), canvas.getHeight());
    layout.layout(0,100, canvas.getWidth(), canvas.getHeight());
    layout.draw(canvas);

使用此代码我得到位置为(0,0)的文本,但我想将其设置为(0,400)我如何才能达到我的要求?

3 个答案:

答案 0 :(得分:0)

如果您不想将视图设置为特定位置,请不要使用“线性布局”。使用相对布局,LinearLayout如名称所示,线性...
无论如何,在java中进行布局是非常糟糕的做法,你应该在xml

中进行

答案 1 :(得分:0)

这是在画布上绘制文本的两个示例代码..

1)在画布上绘制TextView

TextView textView = new TextView(getContext()); 

textView.setText(DetailsActivity.temp_desc);
textView.setMinLines(1);

canvas.translate(0,bitmap.getHeight());
textView.layout(0, 0, 500, 150);
textView.draw(canvas);

2)在画布上绘制文字

canvas.drawText("Value",x_position, y_position, your paint object);

答案 2 :(得分:-2)

您可以设置视图的x和y坐标

请参阅此链接here

或者将此代码用于绝对布局

TextView txt = new TextView(screenContext);
txt.setLayoutParams(new AbsoluteLayout.LayoutParams(width,height, calculatedX,calculatedY));

OR 对于绘图时画布使用此

 canvas.drawText(text, x, y, paint);