2012-04-25 65 views
1

我有一个选项卡式应用程序,它有5个选项卡。应用程序中的图像是从网络调用中获取的,因此在tab1中,例如,第一个活动会进行网络调用,以返回图像。我正在使用此代码InputStream中的Drawable随着ViewFlipper的变化而变化

urln = new URL("http://10.84.4.2:8083/imageFolder/General/backgroundcurved.png"); 
    con = (HttpURLConnection) urln.openConnection(); 
    is = con.getInputStream(); 
    curvedBG = Drawable.createFromStream(is, "CurvedBG"); 
    is.close(); 

这将检索图像很好,它对所有图像都这样做。但是,我注意到一个令人讨厌的问题,我似乎无法修复。当我从视图中翻转时,图像大小似乎会改变,然后翻转。

起初我以为这是在线图像的问题。为了证实这一点,我改变了它,而不是来自在线的图像,它们来自可绘制文件夹中的离线。所以,我没有这个

Drawable test; 
InputStream testStream; 

Resources res = getResources(); 
    test = Drawable.createFromStream(res.openRawResource(R.drawable.backgroundcurved), "test"); 

(其时,我做了这些全局变量只是让所有的活动可以调用这些图像)发生

但是同样的问题。但这个问题比这个更奇怪。在第一个标签中,您可以访问设置屏幕,然后可以翻到菜单1或菜单2.如果菜单一使用测试绘图,则它可以正常工作,但是如果菜单1和菜单2都使用此测试可绘制的,然后如果我翻到菜单1,回到设置,然后到菜单2,回到设置,然后到菜单1,然后第二次访问菜单1时,绘图已缩小到其尺寸的一半,并且菜单2上的图像没问题。如果我反向操作,即访问菜单2,然后再次菜单1,然后再次菜单2。然后,菜单2中的图像搞乱了,但菜单1中的图像很好。

我简直不知道为什么会发生这种情况。是否有太多页面调用相同的Drawable?或者这是viewflipper搞砸了图像的问题?

将不胜感激,如果有人能在正确的方向指向我

编辑:

我也尝试过使用这种方法

public Object fetch(String address) throws MalformedURLException, 
     IOException 
{ 
    URL url = new URL(address); 
    Object content = url.getContent(); 
    return content; 
} 

private Drawable ImageOperations(Context ctx, String url) 
{ 
    try 
    { 
     InputStream is = (InputStream) this.fetch(url); 
     Drawable d = Drawable.createFromStream(is, "src"); 
     return d; 
    } catch (MalformedURLException e) 
    { 
     return null; 
    } catch (IOException e) 
    { 
     return null; 
    } 
} 

获取的图像当我听到这将修复大小问题,但同样的问题发生。

回答

1

已修复的问题,不得不重置每页上的图片加载

相关问题