在我的应用程序中,我有一个带有进度条的刷新功能。进度条位于应该刷新的 TextView 上。问题是:如果 textview 中有很多文本,你就看不到进度条了。是否可以在 onPreExcute/onPostExecute 中使 textview 变暗?我的意思是像模拟器在一段时间后对整个应用程序所做的那样变暗。
有人给我举个例子吗?
最佳答案
嗯,我不知道如何像模拟器那样去做,但理论上像这样的东西是可行的:
未经测试的代码!我在这里输入了它。
在 onPreExecute()
中,使用以下方法更改 TextView 的背景颜色 (.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 channel ,这将(再次),理论上会产生类似的效果。
如果您想更改 TextView 的
textColor 属性
,请将 setBackgroundColor()
更改为:
textView.setTextColor(Color.parseColor("#FFFFFF"));
注意:如前所述,这是未经测试的,只是我的一个理论。但我怀疑,这应该会让你朝着正确的方向前进。当然,您可能不得不摆弄这些值。它们只是我根据 OP 中的内容做出的假设。
关于java - 使 TextView 变暗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16494315/