2017-03-18 99 views
1

我需要编辑的ImageView的绝对值:Android Studio中的约束布局的变化绝对

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); 

它不”工作。

回答

1

从DP转换你的价值为像素。

0

LayoutParams总是处理像素值。

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

如果这不起作用,您需要提供更多信息,而不是简单地说“它不起作用”。设置params1.editorAbsoluteY前

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

+0

“它不起作用”意味着它不会做改变的价值。 – Vexorei