如何确保布局和其他地方 android 上的 correct/direct 维度缩放?
How to ensure correct/direct dimension scaling on android in layouts and elsewhere?
有没有我可以使用的可以直接缩放的单位?真正以像素为单位编写所有内容并将其乘以正确比例的唯一方法吗?
(scale = <real screen height>/<template base height> . and every dimension is <dimen in px> * scale
)
"dp" 桶方法对我不起作用 - 我正在为小屏幕编写,在触发下一个 dp 缩放阈值之前,元素在屏幕外很长。
目前我在 canvas 上绘图的解决方法是(如下),但我不知道如何将其与使用 xml 布局
相协调
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) {
super.onSurfaceChanged(holder, format, width, height);
screenScale = ((float) width) / (float) mBackgroundBitmap.getWidth();
mTopBarYOffset = mTopBarYOffset * screenScale;
mTopBarXOffset = mTopBarXOffset * screenScale;
//and so on for every dimension
您可以使用 ConstraintLayout.
在 ConstraintLayout
中,您可以像这样使用百分比:
<Button
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="0.6" //line 1
app:layout_constraintWidth_percent="0.5" //line 2
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
所以我做了 - 我告诉我的按钮在高度上等于其父级的 60%(见第 1 行)
我还告诉我的按钮等于其父宽度的 50%(见第 2 行)。
对于更复杂的布局,我也会使用 guidelines and Chains 来更轻松地制作响应式布局。
有没有我可以使用的可以直接缩放的单位?真正以像素为单位编写所有内容并将其乘以正确比例的唯一方法吗?
(scale = <real screen height>/<template base height> . and every dimension is <dimen in px> * scale
)
"dp" 桶方法对我不起作用 - 我正在为小屏幕编写,在触发下一个 dp 缩放阈值之前,元素在屏幕外很长。
目前我在 canvas 上绘图的解决方法是(如下),但我不知道如何将其与使用 xml 布局
相协调@Override
public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) {
super.onSurfaceChanged(holder, format, width, height);
screenScale = ((float) width) / (float) mBackgroundBitmap.getWidth();
mTopBarYOffset = mTopBarYOffset * screenScale;
mTopBarXOffset = mTopBarXOffset * screenScale;
//and so on for every dimension
您可以使用 ConstraintLayout.
在 ConstraintLayout
中,您可以像这样使用百分比:
<Button
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent="0.6" //line 1
app:layout_constraintWidth_percent="0.5" //line 2
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
所以我做了 - 我告诉我的按钮在高度上等于其父级的 60%(见第 1 行) 我还告诉我的按钮等于其父宽度的 50%(见第 2 行)。
对于更复杂的布局,我也会使用 guidelines and Chains 来更轻松地制作响应式布局。