Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用ViewFlipper更改InputStream中的绘图_Android - Fatal编程技术网

Android 使用ViewFlipper更改InputStream中的绘图

Android 使用ViewFlipper更改InputStream中的绘图,android,Android,我有一个选项卡式应用程序,它有5个选项卡。应用程序中的图像来自web调用,因此在tab1中,例如,第一个活动进行web调用,返回图像。我正在使用这个代码 urln = new URL("http://10.84.4.2:8083/imageFolder/General/backgroundcurved.png"); con = (HttpURLConnection) urln.openConnection(); is = con.getInputStream();

我有一个选项卡式应用程序,它有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文件夹中的离线图像。所以我做了这个

    Drawable test;
InputStream testStream;

Resources res = getResources();
    test = Drawable.createFromStream(res.openRawResource(R.drawable.backgroundcurved), "test");
(目前,我制作了这些全局变量,以便所有活动都可以调用这些图像)

然而,同样的问题也发生了。但问题变得更加奇怪。在选项卡1中,您可以访问设置屏幕,然后从该屏幕可以切换到菜单1或菜单2。如果菜单一使用了测试绘图功能,那么它可以正常工作,但是如果菜单1和菜单2都使用了这个测试绘图功能,那么如果我切换到菜单1,返回到设置,然后切换到菜单2,返回到设置,然后切换到菜单1,那么第二次访问菜单1时,绘图功能已经缩小到其大小的一半,而菜单2上的图像也可以正常工作。如果我以相反的方式操作,即再次访问菜单2、菜单1和菜单2。然后菜单2中的图像混乱,但菜单1中的图像很好

我完全不知道为什么会发生这种情况。是否有太多的页面调用同一个可绘制页面?或者这是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;
    }
}

据我所知,这将解决大小问题,但同样的问题也会出现。

解决了问题,必须在每次页面加载时重置图像。

解决了问题,必须在每次页面加载时重置图像