19

機能は似ていますが、ドローアブルとレイアウトが異なる 2 つの Android アプリケーションがあります。

すべてのコードとリソースをライブラリ プロジェクトに配置し、そのライブラリを参照する 2 つのアプリケーションのドローアブルとレイアウトの一部をオーバーライドしたいと考えています。

ライブラリを参照するアプリケーションを作成しました。すべてのリソースをライブラリからアプリケーションにコピーし、いくつかのドローアブルを変更しました。文字列リソースの一部も変更しました。Eclipse のレイアウト エディターで変更されたレイアウトの 1 つを表示すると、オーバーライドされた正しいイメージが表示されます。

アプリケーションを起動すると、アプリケーションで変更した文字列リソースが正しく表示されます (ライブラリ文字列はアプリケーションのリソースによってオーバーライドされます) が、私ImageViewの s のドローアブルはすべてライブラリのリソースから取得されます。

また、いくつかのレイアウト リソースに変更を加えました (いくつかの画像の移動とサイズ変更)。変更されたレイアウトを使用するアクティビティ (ソース コードがライブラリにあるアクティビティ) を起動すると、新しい (アプリケーション) レイアウトと古い (ライブラリ) ドローアブルが表示されます。

sのドローアブルをImageView2 つの方法で定義しようとしました。

  1. レイアウト xml で:android:src="@drawable/image_id"

  2. アクティビティのコード:

    ImageView view = (ImageView)findViewById(R.id.viewId);
    view.setImageResource(R.drawable.image_id);
    

どちらの場合も、表示される画像は、アプリケーションではなくライブラリ プロジェクトのリソースから取得されたものです。

この問題を解決できなければ、両方のアプリケーションですべてのコードを複製する必要があり、残念です。

私は何か間違ったことをしていますか?

4

3 に答える 3

1

コピーアンドペーストではなく、デザインを確認して、DrawableのresourceIdをオブジェクトのパラメーターとして指定します。

于 2012-05-21T21:32:13.633 に答える
0

上記のコメントで書いたように、私はプロジェクトをクリーンアップして再構築することで問題を解決することができました。

于 2012-06-20T22:50:03.163 に答える