Android背景尺寸-调整大小以适应所有设备
这与之前提出的其他背景图像大小问题略有不同。在这个片段上,当用户选择一个图标时,背景图像在每次单击时都会动态变化。例如,如果用户单击太阳图标,背景将变为阳光明媚,如果用户单击云图标,背景将变为多云,依此类推 我使用一个简单的switch语句来实现这一点:Android背景尺寸-调整大小以适应所有设备,android,Android,这与之前提出的其他背景图像大小问题略有不同。在这个片段上,当用户选择一个图标时,背景图像在每次单击时都会动态变化。例如,如果用户单击太阳图标,背景将变为阳光明媚,如果用户单击云图标,背景将变为多云,依此类推 我使用一个简单的switch语句来实现这一点: @Override public void onMoodClick(int position) { switch (position) { case 0: moodBefore = 1;
@Override
public void onMoodClick(int position) {
switch (position) {
case 0:
moodBefore = 1;
backgroundChanger.setImageResource(R.mipmap.background_clouds_excited);
hasSelected = true;
break;
case 1:
moodBefore = 2;
backgroundChanger.setImageResource(R.mipmap.background_clouds_happy);
hasSelected = true;
break;
问题是:它在设置为像素2的模拟器上看起来非常完美。然而,当我将应用程序加载到Galaxy s10上时,我注意到部分背景被切断。因此,在我的s10上,只有一半的太阳是可见的,但在像素2模拟器上,整个背景是可见的。有人知道这个问题的潜在解决方案吗?这样背景会更动态一些,可以适应不同的屏幕尺寸
布局:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/FragmentWorkoutMood2"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.fragments.WorkoutFragment">
<com.example.feelingfit.utils.CropImageView
android:id="@+id/workoutBackground"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="matrix"
android:src="@mipmap/background_clouds_workout_default"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
您应该在xml文件中为
backgroundChanger
元素设置android:scaleType
。如果选中此链接,您将看到每个scaletype的图像。你可以选择最适合你的。
使用约束布局来保持纵横比,而不管屏幕大小。默认情况下,我对所有活动和片段都使用约束布局,但这与问题无关。请发布您的布局,以便查看这些视图是如何受到约束的?更新了我的问题,以包括xml文件的相关部分