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

您没有在该 imageview 上设置图像,并且您已将 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 回答