Java Android根据全局变量更改图像

Java Android根据全局变量更改图像,java,android,xml,eclipse,variables,Java,Android,Xml,Eclipse,Variables,问题很简单 我在项目中有两个PNG格式的图像(logo1.PNG和logo2.PNG)。目前,该项目(在imageview中)加载了logo1.png,但我会这样做,具体取决于imageview控件中加载logo1.png或加载logo2.png变量的值 该项目目前有20个带有此图片的活动(每个活动都有自己的XML布局),我不会在20个屏幕上更改代码,它可以通过一个简单的指令来验证变量的值,但必须在20个屏幕上进行更改 不知道是否没有办法根据变量的值来执行此操作,请更改ImageView中的图像

问题很简单

我在项目中有两个PNG格式的图像(logo1.PNG和logo2.PNG)。目前,该项目(在imageview中)加载了logo1.png,但我会这样做,具体取决于imageview控件中加载logo1.png或加载logo2.png变量的值

该项目目前有20个带有此图片的活动(每个活动都有自己的XML布局),我不会在20个屏幕上更改代码,它可以通过一个简单的指令来验证变量的值,但必须在20个屏幕上进行更改

不知道是否没有办法根据变量的值来执行此操作,请更改ImageView中的图像

是否能够从相同的XML访问变量的值


提前谢谢。

如果我理解正确的话。为图像创建一个新的XML视图,例如logo.XML,并在所有20个视图中使用它,当您想更改该图像时,只在logo.XML中更改。

我有点困惑,但我会尝试一下

是的,您可以使用一个全局变量来定义要加载的图像。但根据我的理解,您需要更改加载该映像的活动中的代码,使它们通过代码隐藏动态加载映像

我怀疑会是这样的:

  • 从数据库中获取指示要加载的值的信息
  • SetImageToLoad(someValue)
  • 在加载图像的每个类中,您都需要检索之前在步骤2中设置的值

    公共类帮助类
    {

    }

  • 然后,在需要加载图像的类中,您可以调用如下内容

    ImageView myImage = (ImageView)findViewById(...)
    myImage.setImageResource(HelperClass.GetResourceIDOfImageToLoad());
    

    假设您有一个基本活动类,您可以在基类中定义一个方法
    getLogo()
    ,该方法将返回png(或文件名或任何适合您的内容)。然后在膨胀布局时调用该方法

    最初,您必须更改所有活动,但之后,如果您决定更改选择显示哪个图像的逻辑,则只需要更改基类。(如果这不是您想要的,请澄清您的问题)。

    我建议使用。阅读有关继承的部分,并为每个徽标声明一个单独的
    样式。然后可以在每个XML文件中重用
    样式


    如果您决定以编程方式确定要使用的图像,可以声明一个可在应用程序范围内使用的
    static
    方法来确定在每个上下文中使用哪个徽标,然后相应地
    setImageResource()

    没错,这就是我打算做的,但我必须在每个屏幕上都这样做,而这正是我想要避免的,如果没有其他方法,那么我将不得不这样做。因为您正在从数据库读取值,它需要在运行时更改/加载,这意味着每个图像都需要尝试并确定要显示的图像。最后,是的,您需要对每个活动进行更改,但除了最初的工作之外,您只需要更改一段代码来添加不同的图像。没错,现在我意识到没有太多需要更改的地方,非常感谢您的帮助。
    ImageView myImage = (ImageView)findViewById(...)
    myImage.setImageResource(HelperClass.GetResourceIDOfImageToLoad());