以编程方式设置ImageView的边距和其他布局属性。

问题描述 投票:0回答:3

我想在一个LinearLayout中添加一些图片。

图片的xml是这样的。

<ImageView
    android:id="@+id/iv_card27"
    android:layout_width="50dp"
    android:layout_height="match_parent"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:scaleType="centerInside"
    app:srcCompat="@drawable/back" />

这是我的java代码,我已经试过了。

ImageView card = new ImageView(this);

card.getLayoutParams().width = 50;
card.getLayoutParams().height = ViewGroup.LayoutParams.MATCH_PARENT;
card.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
card.setImageResource(R.drawable.back);

bottomRow.addView(card);

但我一直在努力添加边距,我还担心宽度,我把它设置为50,但实际上应该是50dp。但它实际上应该是50dp。我怎样才能做到这一点呢?

android android-layout android-imageview
3个回答
0
投票

你必须用特定的代码来安排边距。

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(xxx,xxx,xxx,xxx);
card.setLayoutParams(params);

0
投票

你可以使用ViewGroup.MarginLayoutParams , RelativeLayout.LayoutParams或LinearLayout.LayoutParams来设置布局边距。

LayoutParams params = new LayoutParams(
            LayoutParams.WRAP_CONTENT,      
            LayoutParams.WRAP_CONTENT);
params.setMargins(left, top, right, bottom);
card.setLayoutParams(params);

https:/developer.android.comreferenceandroidviewViewGroup.MarginLayoutParams。


0
投票

用于设置ImageView的边距。

MarginLayoutParams marginParams = new MarginLayoutParams(image.getLayoutParams());
marginParams.setMargins(left_margin, top_margin, right_margin, bottom_margin);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams);

card.setLayoutParams(layoutParams);
© www.soinside.com 2019 - 2024. All rights reserved.