Android Studio约束布局绝对改变

时间:2017-03-18 20:48:39

标签: java android layout android-constraintlayout

我需要编辑ImageView的绝对值:

tools:layout_editor_absoluteY="0dp"

tools:layout_editor_absoluteY="50dp"

但是在java中我只是做

ImageView img = (ImageView)findViewById(R.id.mainView);
ConstraintLayout.LayoutParams params1 = (ConstraintLayout.LayoutParams)(img.getLayoutParams());
params1.editorAbsoluteY = 50;
img.setLayoutParams(params1);

它没有用。

2 个答案:

答案 0 :(得分:1)

将您的值从DP转换为像素:

public int dpToPx(int dp) {
    DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
    return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
}

在设置params1.editorAbsoluteY之前。

答案 1 :(得分:0)

LayoutParams始终处理像素值。

因此,在设置LayoutParams上的值之前,您需要将DP转换为PX值。有很多这方面的例子,快速谷歌应该这样做。

如果这不起作用,您需要提供更多信息,而不仅仅是说"它不起作用"。