Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android runOnUiThread与性能_Android_Multithreading_Textview_Android Runonuithread - Fatal编程技术网

Android runOnUiThread与性能

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

我的Android应用程序是一个开放式GL ES 2.0应用程序。对于一个特定场景,我将在GL Surfaceview的顶部叠加一些文本视图以及一些OpenGL纹理四边形

我需要一个文本视图来“flash”-我的目标是姜饼,因此,我不能使用动画,所以我创建了一个方法来实现这一点:

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可供您使用。