1

我有一个 textView,我不想打印文本,我想自己绘制并隐藏打印的文本。如何隐藏打印的文本?

编辑:解释这个问题,因为似乎没有人得到它。TextView 的文本将被自动打印(因为它是一个 textView),但问题是我已经在绘制文本并且我当然不希望出现 2 个文本版本(我绘制的版本和自动-printed version)我想隐藏文本的自动打印版本,但保留我绘制的文本。

公共类 myTextView 扩展 TextView {

  @Override
  protected void onDraw(Canvas canvas) { 
     //drawing my text here with the current text...      
  }

}

4

3 回答 3

0

如何设置TextView的可见性?

TextView.setVisibility(View.VISIBLE);

TextView.setVisibility(View.INVISIBLE);
TextView.setVisibility(View.GONE);

或将其文本设置为“”。

TextView.setText("");
TextView.setText("yourtext");

此外,您可以像这样初始化 TextView:

TextView tv = new TextView(this);
tv.setText("yourtext"); // this will not draw the textview yet, it will not be visible

将 TextView 添加到布局后,它将调用其 onDraw() 方法:

LinearLayout ll = (LinearLayout) findViewById(R.id.llTv);
ll.addView(tv); // now the textview that we initialized before will be "visible"

更新:

如果您使用的是自定义 TextView,请尝试调用:

Canvas.drawColor(Color.BLACK); // or whatever color you want your textview to be cleared with

清除画布(在您的 onDraw() 方法内),然后打印您的文本。

您可以通过绘制背景颜色来清除画布,然后绘制所需的文本。

于 2013-08-26T19:45:57.677 回答
0

对于要隐藏的文本版本,只需将其设置为黑色

tv.setText("");或者TextView.setVisibility(View.INVISIBLE);

然后重新设置它tv.setText("text");TextView.setVisibility(View.VISIBLE);

于 2013-08-26T19:53:20.417 回答
0

您可以尝试使用TextView 的TransformationMethod

这里有一个例子 https://gist.github.com/RicardAparicio/bdd6cd30410f9431e1da238202a1dfa9

如果需要,更改一些参数。

于 2022-02-15T18:14:30.153 回答