在ImageView上设置边距

时间:2014-01-15 20:56:40

标签: java android xml

我正在尝试将imageview的layout_marginTop设置为不同密度/屏幕大小的一个值。在我的values-mdpi文件夹中,我在dimensions.xml中有以下行

<dimen name="marginTop">10dp</dimen>

在MainActivity中

ImageView image = (ImageView) findViewById(R.id.s_image);

但是对于imageview没有setmargin方法。有没有办法做到这一点?

4 个答案:

答案 0 :(得分:0)

您无需在代码中执行此操作,您可以在定义图像视图的XML文件中执行此操作。有关详细信息,请参阅this page

<TextView
    android:layout_height="@dimen/textview_height"
    android:layout_width="@dimen/textview_width"
    android:textSize="@dimen/font_size"/>

答案 1 :(得分:0)

你走在正确的轨道上。在xml中引用你的维度值可能最容易(而不是在java代码中设置它)。

<ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginTop="@dimen/yourMarginTopValue" />

答案 2 :(得分:0)

尝试将android:adjustViewBounds="true"置于

答案 3 :(得分:0)

在XML中执行此操作可能更好,因为您似乎已经在XML中定义了ImageView

但是,layout_* XML属性引用父布局的LayoutParams,而不是视图本身。要在代码中更改它们,请使用getLayoutParams()访问它们,进行修改并调用requestLayout()来安排重新布局传递。例如:

ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)imageView.getLayoutParams();
lp.topMargin = 123;
imageView.requestLayout();