Android:隐藏自定义TextView的文本

Posted

技术标签:

【中文标题】Android:隐藏自定义TextView的文本【英文标题】:Android: Hide Text of custom TextView 【发布时间】:2013-08-26 19:41:44 【问题描述】:

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

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

公共类 myTextView 扩展 TextView

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

【问题讨论】:

在您准备好之前不要向TextView 添加任何内容? 我想你误解了这个问题,如果我添加了任何东西,它将被自动打印(因为它是一个 textView)但问题是我已经在绘制文本并且我没有当然希望出现 2 个版本的文本。 查看 setVisibility(View.INVISIBLE)? 阅读以上评论。 我想我仍然误解了这个问题。你能用某种例子来澄清一下,或者以某种方式让它更清楚吗? 【参考方案1】:

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

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

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

【讨论】:

你没看懂问题【参考方案2】:

如何设置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() 方法中),然后打印文本。

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

【讨论】:

你能发布一些你的代码吗?您使用的是自定义 TextView 吗? 是的,我正在使用自定义 textView。【参考方案3】:

您可以尝试使用TextView的TransformationMethod。

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

根据需要更改一些参数。

【讨论】:

以上是关于Android:隐藏自定义TextView的文本的主要内容,如果未能解决你的问题,请参考以下文章

Android 自定义TextView 实现文本间距

自定义 TextView 字体不适用于从 java android 设置文本

在 Android 的自定义适配器中设置 Textview 的文本的问题

Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小

“Android Utils“ 实现TextView 区域自定义点击

“Android Utils“ 实现TextView 区域自定义点击