我有一个标签式应用程序,它有5个标签。应用程序中的图像来自Web调用,因此在tab1中,例如,第一个活动,进行Web调用,返回图像。我正在使用此代码
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使用测试drawable,那么它工作正常,但是如果菜单1和菜单2都使用这个测试drawable,然后如果我翻到菜单1,回到设置,然后回到菜单2,回到设置,然后到菜单1,然后第二次访问菜单1,drawable缩小了自己的一半大小,并且菜单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;
}
}
正如我所说,这样可以解决尺寸问题,但会出现同样的问题。
答案 0 :(得分:1)
修复了问题,不得不重置每页加载的图像