1

在我的应用程序中,我有一个带有进度条的刷新功能。进度条位于应该刷新的文本视图上。问题是:如果文本视图中有很多文本,你看不到进度条那么好。是否可以在 onPreExcute/onPostExecute 中使 textview 变暗?我的意思是一段时间后,整个应用程序会像模拟器一样变暗。

有没有人给我一个例子?

4

1 回答 1

3

好吧,我不知道如何像模拟器那样去做,但理论上这样的事情可以工作:

未经测试的代码!我在这里输入的。

在 中,使用以下方法更改 TextViewonPreExecute()的背景颜色 ( ):.setBackgroundColor

@Override
protected void onPreExecute() {
    .....

    textView.setBackgroundColor(Color.parseColor("#74000000"));
}

并在 中onPostExecute(),将其改回原来的颜色:

@Override
protected void onPostExecute(Void result) {
    ....

    textView.setBackgroundColor(Color.parseColor("#000000"));
}

这是假设您的原始背景颜色TextView#000000(黑色)。

要查看使用中的这种效果,请打开 Twitter 应用程序,转到任何用户的个人资料,然后在屏幕顶部查看他们是如何操作的,您可以在屏幕顶部看到用户的个人资料图片(和横幅,如果可用)并向右滑动,显示淡化背景时的描述。看起来背景已经变暗了。

由于我在onPreExecute()( #74000000) 中使用了 Alpha 通道,因此 (再次)理论上会产生类似的效果。

如果您想更改TextView's textColor attribute,请将 更改setBackgroundColor()为:

textView.setTextColor(Color.parseColor("#FFFFFF"));

注意:如前所述,这是未经测试的,只是我的一个理论。但我怀疑,这应该会让你朝着正确的方向前进。当然,您可能不得不摆弄价值观。它们只是我基于 OP 中的内容的假设。

于 2013-05-11T06:21:54.723 回答