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 

在我的脑海中,试试这些:

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

  2. 资产R.drawable.lampaljusR.drawable.lampaslockn和其他资产有多大,从维度来看。因为尝试加载高分辨率的可绘制文件,尤其是PNG,会占用大量内存。

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

最新更新