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的文本的主要内容,如果未能解决你的问题,请参考以下文章
自定义 TextView 字体不适用于从 java android 设置文本
在 Android 的自定义适配器中设置 Textview 的文本的问题
Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小