我有一个全屏的活动,想要以编程方式设置背景。 我在我的drawable文件夹中有四个不同的图像,每次创建活动时,我都想随机选择其中一个作为背景。以下是我的代码:
LayoutInflater inflater = getLayoutInflater();
FrameLayout layout = (FrameLayout) inflater.inflate(R.layout.activity_my, null);
int[] images = {R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4};
Random rand = new Random();
layout.setBackgroundResource(images[rand.nextInt(images.length)]);
这是XML文件:
<FrameLayout 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="com.example.mkessler.MyApp.MyActivity">
<TextView
android:id="@+id/fullscreen_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:keepScreenOn="true"
android:textColor="#33b5e5"
android:textSize="50sp"
android:textStyle="bold" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<LinearLayout
android:id="@+id/fullscreen_content_controls"
style="?metaButtonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:background="@color/black_overlay"
android:orientation="horizontal"
tools:ignore="UselessParent">
<Button
android:id="@+id/dummy_button"
style="?metaButtonBarButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Unimportant text"
android:onClick="someFunction"/>
</LinearLayout>
</FrameLayout>
然而,当我在手机上运行应用程序时,背景只是黑色的。 当我尝试使用特定的图像进行设置时,同样的情况也发生了。 不过,当我从XML文件中设置背景时,一切都很正常。
编辑: 仅为澄清起见,即使我尝试通过编程方式设置给定的图像而非XML文件,我仍然会得到黑色背景。 我认为将问题随意解释不会有任何进展。
编辑#2:我的项目的最低API设置为15。 不知道这是否相关,但以防有人认为它很重要...
rand.nextInt(images.length)
给我的吗? - faerubin