ImageView在其可绘制对象之间闪烁

我有一个具有不同图形元素(ImageViews)的android应用。可以通过按某些ImageView来更改它们,然后它们将显示另一个图形。我为此有两个系统,而我的问题都相同。

在第一种情况下,我将两个ImageView彼此叠加,然后分别调用它们并以编程方式设置它们的可见性。在第二种情况下,我使用函数“ setImageResource”并在不同的可绘制对象之间进行更改。

在这两种情况下,我都遇到一个问题,即该应用程序似乎经常“出现问题”,并且瞬间就为每个具有图形替换的元素显示了错误的“其他”图形元素。短暂显示错误的图形,然后跳回正确的图形。

我在网上找不到任何有关此问题的信息,这里的任何人都知道此问题或对可能的问题有任何线索?

相关代码:

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 
lilifenglilifeng 回答:ImageView在其可绘制对象之间闪烁

在我的头顶上,尝试以下操作:

  1. 将所有findViewById代码移至活动的onCreate,以避免多次调用。

  2. R.drawable.lampaljusR.drawable.lampaslockn和其他资产的大小合理。因为尝试加载高分辨率可绘制对象(尤其是PNG)会占用大量内存。

但是,如果您可以发布完整的xmlActivity/Fragment代码,我可以提供更好的解决方案。

本文链接:https://www.f2er.com/3168399.html

大家都在问