我目前正在开发一个Android项目,它要求我将图像作为某些活动的背景。我正在使用Android Studio开发应用程序,并在多个设备上测试了应用程序。
起初我把背景图片放在了drawable文件夹中。由于重新缩放图像,这导致了市长帧率下降。在此之后,我将图像放在drawable-nodpi文件夹中。 我在摩托罗拉Moto G(Android L),Nexus 5(Android L)和Nexus 9(Android L)上测试了应用程序,一切运行良好。
为了确保该应用适用于多个设备,我通过Android Studio启动了mdpi Jellybean模拟器。令人惊讶的是,背景只被加载到2/4活动中(所有活动都使用相同的资源)。经过一些研究后,我决定预先缩放背景并将其放在drawable-mdpi,drawable-ldpi文件夹等中。再次测试,现在背景只显示在1个活动上。我决定使用较旧的api测试多个设备。我发现我的应用程序遇到了这个问题,每个设备的api都低于Android L.
有人可以向我解释这是如何可能的,因为所有活动都使用相同的资源吗?
亲切的问候,
朱尔
学生ICT软件开发
EDIT 我将背景添加到Drawable文件夹中。
加载背景的活动的源代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="nl.beachbash.beachbash.InfoListActivity"
android:background="@drawable/background"
android:backgroundTint="#32dd6800"
android:backgroundTintMode="src_over"
android:id="@+id/background">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listViewInfo"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:drawSelectorOnTop="false"
android:dividerHeight="2dp"
android:divider="#FFFFFF" /></RelativeLayout>
未加载背景的活动的源代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="nl.beachbash.beachbash.FloorPlanActivity"
android:backgroundTint="#32dd6800"
android:backgroundTintMode="src_over"
android:background="@drawable/background">
<nl.beachbash.customUI.TouchImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/imageView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:nestedScrollingEnabled="false"
android:contentDescription="@string/Floorplan" /></RelativeLayout>
答案 0 :(得分:0)
我自己设法解决了这个问题。
我尝试制作一个新活动,输入完全相同的代码,构建完全相同的界面,并以与上面相同的方式添加背景,但这次显然有效。 不知道为什么......