结果
你需要做的是:
只需将此添加到您的XML中
<View
android:id="@+id/viewV1"
android:layout_height="match_parent"
android:background="#ff0000"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="match_parent"
/>
在你的Java中,可以这样写:
首先导入以下内容。
import android.graphics.Point;
import android.support.constraint.ConstraintLayout;
import android.view.Display;
import android.view.View;
然后在您的Java文件的onCreate函数中添加这些行。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width1 = size.x;
//int height = size.y;
View v = findViewById(R.id.viewV1);
ConstraintLayout.MarginLayoutParams params = (ConstraintLayout.MarginLayoutParams) v.getLayoutParams();
params.width = width1/2; params.leftMargin = width1/4; params.rightMargin = width1/4;
v.setLayoutParams(params);
您也可以使用此方法设置高度。是的,无论屏幕大小如何,此视图将使用屏幕宽度的一半。
由于您不想通过Java执行此操作,请将以下内容添加到您的XML中。
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline5"
app:layout_constraintGuide_begin="411dp"
android:orientation="vertical"
/>
选择此选项,将此指南移动到屏幕末尾,并注意此值app:layout_constraintGuide_begin="411dp"
。 现在无论该值为何,都是您屏幕的宽度。
将marginStart
和marginEnd
添加到您的视图中,作为411/4 dp。 (计算该值,XML不会执行此操作)。
这将使您的视图位于中心位置,并且其宽度为父级宽度的一半。
请记住,并非每个屏幕的宽度都为411dp。 这对于所有手机屏幕大小都不起作用。