【问题标题】:Android: Hide Text of custom TextViewAndroid:隐藏自定义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)?
  • 阅读以上评论。
  • 我想我仍然误解了这个问题。你能用某种例子来澄清一下,或者以某种方式让它更清楚吗?

标签: android user-interface view textview


【解决方案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

根据需要更改一些参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多