Android runOnUiThread与性能
我的Android应用程序是一个开放式GL ES 2.0应用程序。对于一个特定场景,我将在GL Surfaceview的顶部叠加一些文本视图以及一些OpenGL纹理四边形 我需要一个文本视图来“flash”-我的目标是姜饼,因此,我不能使用动画,所以我创建了一个方法来实现这一点:Android runOnUiThread与性能,android,multithreading,textview,android-runonuithread,Android,Multithreading,Textview,Android Runonuithread,我的Android应用程序是一个开放式GL ES 2.0应用程序。对于一个特定场景,我将在GL Surfaceview的顶部叠加一些文本视图以及一些OpenGL纹理四边形 我需要一个文本视图来“flash”-我的目标是姜饼,因此,我不能使用动画,所以我创建了一个方法来实现这一点: public void flashText(){ if(myText.getVisibility()==View.VISIBLE) myText.setVisibility(Vi
public void flashText(){
if(myText.getVisibility()==View.VISIBLE)
myText.setVisibility(View.GONE);
else
myText.setVisibility(View.VISIBLE);
}
然后,通过我的OpenGL线程,我执行以下操作:
void updateLogic(
if (System.currentTimeMillis()>(flashTimer+250)){
flashTimer=System.currentTimeMillis();
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
activity.flashText();
}
});
}
}
上述方法(updateLogic)每秒调用60次。计时器设置为250ms,因此我每秒会收到4次“闪烁”动画,或者每秒4次,FlashText通过runOnUiThread调用
这确实有效,但是,它影响了openGL对象的动画,足以成为一个问题
我的问题是,有没有更好的办法?(因为我使用的方法显然不够有效)。为什么你要针对姜饼?@CharlesDurham,这纯粹是一个商业决策,而不是一个技术决策。这不一定是一个解决方案,但变为无形会有任何影响吗?我认为,如果你在“消失”和“可见”之间切换,它实际上是在重新绘制有问题的视图。您好@TDev,这是一个好主意,但不幸的是,它没有任何区别。@Zippy我唯一的另一个猜测是尝试使用.setAlpha(float)方法更改alpha或在很短的时间内将其升级为AlphaAnimation。AlphaAnimation可供您使用。