InputStream中的Drawable随着ViewFlipper的变化而变化
问题描述:
我有一个选项卡式应用程序,它有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;
}
}
获取的图像当我听到这将修复大小问题,但同样的问题发生。
答
已修复的问题,不得不重置每页上的图片加载