0

質問は簡単です。

プロジェクトにPNG形式の2つの画像(logo1.pngとlogo2.png)があります。現在、プロジェクトは(imageviewで)logo1.pngをロードしていますが、変数の値に応じて、imageviewコントロールでlogo1.pngまたはlogo2.pngをロードします。

プロジェクトには現在、この画像で20のアクティビティがあります(それぞれがXMLで独自のレイアウトを持っています)。20の画面でコードを変更することはありません。変数の値を確認する簡単な手順で実行できますが、作成する必要があります。 20画面で変化します。

変数の値によっては、それを行う方法がないのではないかと思います。ImageViewで画像を変更してください。

同じXMLから変数の値にアクセスできるようになりますか?

前もって感謝します。

4

4 に答える 4

2

少し混乱していますが、試してみます。

はい、ロードする画像を定義するグローバル変数を持つことができます。しかし、私の理解では、その画像を読み込むアクティビティのコードを変更して、コードビハインドを介して画像を動的に読み込むようにする必要があります。

私はそれがこのようなものになると思います:

  1. ロードする値を示す情報をデータベースから取得します。
  2. SetImageToLoad(someValue)
  3. 画像を読み込む各クラスで、前に手順2で設定した値を取得する必要があります。

    パブリッククラスHelperClass
    {

    int resIDOfImageToLoad =  0;
    
    public static void SetImageToLoad(String imageName)
    {
        if(imageName.equals("abc"))
        {
            resIDOfImageToLoad = R.id.abc;
        }
        else if(imageName.equals("xyz"))
        {
            resIDOfImageToLoad = R.id.xyz;
        }
     }
    
     public static int GetResourceIDOfImageToLoad()
     {
         return resIDOfImageToLoad;
     }
    

    }

次に、画像を読み込む必要があるクラスで、次のように呼び出します。

ImageView myImage = (ImageView)findViewById(...)
myImage.setImageResource(HelperClass.GetResourceIDOfImageToLoad());
于 2012-05-29T14:48:38.940 に答える
0

私があなたを正しく理解していれば。画像の新しいXMLビュー(logo.xmlなど)を作成し、それを20のビューすべてで使用します。その画像を変更する場合は、logo.xmlでのみ変更します。

于 2012-05-29T14:46:11.420 に答える
0

基本Activityクラスがあると仮定するとgetLogo()、png(またはファイル名など)を返す基本クラスのメソッドを定義できます。次に、レイアウトを膨らませるときにそのメソッドを呼び出すだけです。

最初はすべてのアクティビティを変更する必要がありますが、その後、表示する画像を選択するロジックを変更する場合は、基本クラスを変更する必要があります。(これが意図したものでない場合は、質問を明確にしてください)。

于 2012-05-29T14:50:35.063 に答える
0

スタイルまたはテーマの使用をお勧めします。継承について説明しているセクションを読み、Styleロゴごとに個別に宣言します。Styleその後、各XMLファイルでを再利用できます。

使用する画像をプログラムで決定する場合は、staticアプリケーション全体で使用できるメソッドを宣言して、各コンテキストで使用するロゴを決定し、それsetImageResource()に応じて決定することができます。

于 2012-05-29T14:53:57.410 に答える