0

さて、私は次のコードを持っています。これは、5つの画像と5つのチェックボックスをロードします。各画像に1つずつです。

hLayout.postDelayed(new Runnable() {

                        DisplayMetrics metrics = getActivity().getResources().getDisplayMetrics();
                        int width = metrics.widthPixels;
                        int height = metrics.heightPixels;

                        @Override
                        public void run() {

                            if (coupons != null) {
                                int coupSize = coupons.size();
                                final int itemWidth = (width / 2);
                                final int itemHeight = (height / 2);
                                hLayout.removeAllViews();
                                for (int i = 0; i < coupSize ; i++) {
                                    Coupon coupon = coupons.get(i);
                                    if (coupon.getImage() != null) {
                                        RelativeLayout parent = new RelativeLayout(getActivity());
                                        RelativeLayout.LayoutParams linearparams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                                        parent.setLayoutParams(linearparams);
                                        final CheckBox cb = new CheckBox(getActivity());
                                        final ImageView iv = new ImageView(getActivity());
                                        //iv.setScaleType(ScaleType.CENTER_INSIDE);
                                        LayoutParams checkBoxParams = new LayoutParams();
                                        cb.setId(i);
                                        checkBoxParams.height = LayoutParams.WRAP_CONTENT;
                                        checkBoxParams.width = LayoutParams.WRAP_CONTENT;
                                        cb.setOnCheckedChangeListener(changeListener);
                                        RelativeLayout.LayoutParams imageParams = new RelativeLayout.LayoutParams(itemWidth, itemHeight);
                                        imageParams.height = itemHeight;
                                        imageParams.width = itemWidth;
                                        imageParams.addRule(RelativeLayout.BELOW, cb.getId());
                                        parent.addView(cb, checkBoxParams);
                                        parent.addView(iv, imageParams);
                                        hLayout.addView(parent);
                                        ImageUtil.loadImage(coupon.getImage(), iv, itemWidth, itemHeight, "", false, getActivity());
                                    }
                                }
                            }

                        }
                    }, 200);

最初のチェックボックスと画像がその場所にあります。問題は、最初の画像よりも少し低い他の画像にあります。最初の画像を除いて、それらはすべて位置合わせされていますが、本来あるべきよりも低くなっています(最初の画像と位置合わせされている必要があります)。私は何を間違えましたか?

4

1 に答える 1

0

解決:if(cb.getId()== 0){imageParams.topMargin = 72; }

于 2012-08-14T13:44:36.553 に答える