如何使用android中的代码在imageview上设置边距?

时间:2014-09-22 11:58:16

标签: android imageview runtime margin

我试图在运行时创建一个布局,然后我想在运行时使用循环添加一些imageview。但问题是我使用LayoutParams提供的余量根本不起作用。我已经尝试过并且搜索了很多,但没有找到任何解决方案。我也附上了我的代码。

RelativeLayout ll_main_image = new RelativeLayout(activity);
        ll_main_image.setLayoutParams(new LayoutParams(
                width,
                width));


        for (int i = 0; i < al.get(position).al.size(); i++) {

            //creating layout for tags
            ImageView view_tag = new ImageView(activity);
            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

            int int_margin_left = (int)(((Double.parseDouble(al.get(position).al.get(i).str_x_pos))/100)*width);
            int int_margin_top  = (int)(((Double.parseDouble(al.get(position).al.get(i).str_y_pos))/100)*width);

            System.out.println("margins perc " + al.get(position).al.get(i).str_x_pos + " / " + al.get(position).al.get(i).str_y_pos + " / " + width);
            System.out.println("margins " + int_margin_left + " / " + int_margin_top + " / " + width);

            lp.setMargins(int_margin_left, int_margin_top, 0, 0);
            view_tag.setLayoutParams(lp);

            view_tag.setBackgroundResource(R.drawable.tag_light);
            ll_main_image.addView(view_tag);

        }

1 个答案:

答案 0 :(得分:2)

您使用的是LinearLayout.LayoutParams,其布局为RelativeLayout。改为RelativeLayout.LayoutParams,它应该可以工作。