我在使用Android响应式设计时遇到了很多麻烦。在网页设计中,我们可以使用百分比作为视图大小,但是在android中,我们没有这种东西。 无论我使用ImageButtons还是常规Button或其他任何东西,当我更改“预览设备”时,孔的设计都会变得混乱,因为宽度和高度不会动态更改,例如,我使Pixel设备上的一切看起来都很好,但是当我更改预览到Pixel 2 XL的每一件事都很小。赌你不想知道当我将预览改为:D
时会发生什么我应该提一下,我知道我不能使用硬编码的值,而且我也没有做太多事情。 我使用Adobe XD设计了按钮,并使用该工具可以导出PNG类型和六种不同大小(ldpi,mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi)的按钮。但是,即使我的ImageButton也没有动态更改其大小。 我试图找到解决方案,但我肯定必须找到一个解决方案,但是当我搜索android响应式设计或诸如此类的东西时,可能是因为我的英文不好而导致的。
我非常感谢您的帮助
下面是一些示例代码,ImageButtons的大小不会动态变化,因此在像像素这样的小型设备中,我具有滚动功能,但在像像素3 XL这样的大型设备中,按钮是如此之小,因此无需滚动。
><HorizontalScrollView
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_marginTop="32dp"
app:layout_constraintTop_toBottomOf="@+id/button" android:layout_marginBottom="32dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" android:scrollbars="none"
>
<LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent">
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/all_foods_btn" android:background="@android:color/transparent"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:contentDescription="@string/main_activity_all_foods_btn_dsc"/>
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/profile_btn_main" android:background="@android:color/transparent"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:contentDescription="@string/main_activity_profile_btn_dsc"/>
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/classic_decider_btn" android:background="@android:color/transparent"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:contentDescription="@string/main_activity_classic_decider_btn_dsc"/>
</LinearLayout>
</HorizontalScrollView>
答案 0 :(得分:1)
尝试将android:layout_height="0dp"
更改为HorizontalScrollView
。这将使其遵守您设置的约束(底部为父级,顶部为button
)
答案 1 :(得分:1)
try this library:此大小单位根据sp大小单位(对于文本)与屏幕大小成比例。它可以帮助Android开发人员支持多个屏幕。