我需要编辑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);
它没有用。
答案 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值。有很多这方面的例子,快速谷歌应该这样做。
如果这不起作用,您需要提供更多信息,而不仅仅是说"它不起作用"。