0

res/drawable-ldpi フォルダーに png ファイルがあります。私はエミュレーターを使用して Eclipse で作業していますが、2.2.1 Android フォンでこれを試してみましたが、同じ動作が得られました。ImageView があり、データベース呼び出しに基づいてプログラムで src を設定したいと考えています。私がちょうど置くなら

src="@drawable.norusdpyr"

アクティビティの XML ファイルでは、ファイルは正常に表示されます。しかし、私が置くと

String imageresource = "R.drawable." + parsedData[4].toString();
chart.setImageURI(Uri.parse(imageresource));

where parsedData[4].toString() = "nor_usdpyr" 何も表示されません。私も試してみました

String imageresource = "android.resource://" + getPackageName() + "/R.drawable." + parsedData[4].toString();
chart.setImageURI(Uri.parse(imageresource));

InputStream is = getClass().getResourceAsStream("/drawable/" + parsedData[4].toString());
chart.setImageDrawable(Drawable.createFromStream(is, ""));

String imageresource = "R.drawable." + parsedData[4].toString();   
File file = new File(imageresource);
chart.setImageDrawable(Drawable.createFromPath(file.getAbsolutePath()));

Context context = getApplicationContext();
int ResID = context.getResources().getIdentifier(imageresource, "drawable", "com.KnitCard.project");
chart.setImageResource(ResID);

最後に、

chart.setImageURI(Uri.parse("android.resource://" + getPackageName() + "/R.drawable.nor_usdpyr"));

動作しません。

これらのどれも機能しません。私は何を間違っていますか?ありがとう!

4

2 に答える 2

1

まず、これは機能しないはずです:

src="@drawable.norusdpyr"

正しい方法は次のとおりです。

android:src="@drawable/norusdpyr"

次に、XML で使用する文字列IDは XML でのみ有効です。リソースが構築されると、これらすべての文字列がそれぞれの整数値に置き換えられます。理想的には、文字列名からパッケージ リソースを読み込む必要はありません。しかし、そのような名前のフィールドを探し、それが保持する整数値を取得して、 を呼び出すことができますsetImageResource。あなたはこのバージョンに非常に近かった:

int ResID = context.getResources().getIdentifier(imageresource, "drawable", "com.KnitCard.project");
chart.setImageResource(ResID);

ただし、プレフィックスを付けないでimageResourceください。パッケージ名をハードコーディングする代わりに使用できます。parsedData[4].toString()R.drawable.context.getPackageName()

于 2012-06-08T17:44:32.580 に答える