1

こんにちは、Androidアプリのアクティビティにプログラムで画像を追加しようとしています

私はこれを持っています:

for (int i = 0; i < num_devices; i++) {

        ImageView imageView = new ImageView(this);
        LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams
           (ViewGroup.LayoutParams.WRAP_CONTENT, 
           ViewGroup.LayoutParams.WRAP_CONTENT);
        imageView.setLayoutParams(vp);

        try {
            Class res = R.drawable.class;
            Field field = res.getField(device_types.get(i));
            int resId = field.getInt(null);
            imageView = (ImageView) findViewById(resId);
        }
        catch (Exception e) {
            Log.e("MyTag", "Failure to get drawable id.", e);
        }

        LinearLayout link_devices = (LinearLayout) findViewById(R.id.link_devices);
        link_devices.addView(imageView);

ただし、画像の場所を取得できません(getTop、getLeftなどで0を取得しようとします..)

私はそれを間違ってやっていますか、そしてそれは正しい方法でした

4

1 に答える 1

0

そのイメージビューにイメージを設定しておらず、レイアウト パラメータとして WRAP_CONTENT を設定しています。つまり、imageView のサイズは、設定しているイメージのサイズと同じです。画像が添付されていないため、imageView のサイズは 0 です。

imageView.setImageBitmap(Bitmap bm)、setImageDrawable(Drawable drawable)、または setImageResource(int ResID) のいずれかのコードを使用して、画像を設定してみてください。

このコードで何をしているのかわかりません。必須ではありません:

Class res = R.drawable.class;
Field field = res.getField(device_types.get(i));
int resId = field.getInt(null);
imageView = (ImageView) findViewById(resId);
于 2013-07-04T18:11:56.210 に答える