Tengo una aplicación para Android con diferentes elementos gráficos (ImageViews). Algunos ImageViews se pueden cambiar presionando, y luego mostrarán otro gráfico. Tengo dos sistemas para esto, y mi problema es el mismo para ambos.

En el primer caso he estratificado dos ImageViews uno encima del otro, y luego llamo a cada uno de ellos y establece su visibilidad mediante programación. En el segundo caso utilizo la función "setImageResource" y cambio entre diferentes drawables.

En ambos casos tengo el problema de que la aplicación a menudo parece "hickup" y por una fracción de segundo mostrar el elemento gráfico 'otros' equivocado para cada elemento que tiene una alternativa gráfica. Muestra el gráfico incorrecto durante una fracción de segundo y, a continuación, vuelve al gráfico correcto.

No puedo encontrar nada sobre esto en línea, cualquier persona aquí que reconoce este problema o tiene alguna pista sobre cuál podría ser el problema?

código pertinente:

public void setLight1(int bo) // changes a graphical element by drawable
{
    ImageView vw = (ImageView) findViewById(R.id.light_1);

    if (bo > 0)
        vw.setImageResource(R.drawable.lampaljus);
    else
        vw.setImageResource(R.drawable.lampaslockn);
}

private void setStickMid(int stick) // changing between two layered imageViews
{
    switch (stick)
    {
        case 1:
            ImageView vw_1 = (ImageView) findViewById(R.id.stick_1_up);
            vw_1.setVisibility(View.INVISIBLE);
            ImageView vw_2 = (ImageView) findViewById(R.id.stick_1);
            vw_2.setVisibility(View.VISIBLE);
            break;
    // the rest of the switch statement omitted, just more of the same 
0
Achivai 4 nov. 2019 a las 10:47