1

首先,我想告诉你,我是新来的,来自西班牙,我的英语水平不太好,所以请……试着理解我哈哈。此外,您必须知道我是一名远程信息处理工程专业的学生,​​而编程只是我最喜欢的爱好。有了这些信息,我只想让你全面地回答我的问题:我知道这是一个菜鸟问题,当我假装创建一个 Android 游戏时,情况会更糟……但我正在一点一点地学习。

问题

我遇到的问题是下一个问题。我想在名为“*activity_principal*”的主要活动中设置一个 .PNG 图像。这张图片有很多空白,背景最初是黑色的(我猜是因为一开始就选择了主题)。好吧,这张图片有一些黑色的细节,它们与背景颜色融合在一起。

我的第一个解决方案是尝试从 XML 对应的代码中设置两个背景,但很快我意识到不可能在同一个布局中使用它两次。所以我认为它会通过下一种方式修复:我在 XML 文件和 .java 文件中设置了“ android:background="@android:color/white" ”,我将其他资源设置为背景:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_principal);

    RelativeLayout fondo = (RelativeLayout) findViewById(R.layout.activity_principal);
    fondo.setBackgroundResource(R.drawable.prototipoestructurapantalla);
}

我曾经使用这种结构并且从来没有遇到过问题,但是今天,尝试这样做时,我发现了一些奇怪的东西。由于没有发现错误,我在“setContentView(...”下的行处设置了两个断点并调试,当光标到达最后一个代码行“fondo.setBack ...”时,变量“fondo”为“null”我认为有问题,所以当我恢复调试时,应用程序崩溃了......

我希望你能帮助我。谢谢!

4

1 回答 1

1

问题是它将findViewById(R.layout.activity_principal);返回null。

您传递的是布局ID ( R.layout.activity_principal) 而不是视图 ID。

它应该看起来像findViewById(R.id.fondo);.

于 2013-10-21T16:24:09.643 回答