【问题标题】:(Android Studio) App Background Image Doesn't Fill Screen(Android Studio) 应用背景图片不填满屏幕
【发布时间】:2015-04-26 19:31:08
【问题描述】:

我是应用程序编程的新手,需要一些帮助。我正在 Android Studio 上构建一个简单的应用程序,但我的应用程序的背景图像(我将其命名为“green_background”)并没有完全填满屏幕。我无法提供屏幕截图,因为我在 Stack Overflow 上没有 10 名声望。

这是我的应用的活动编码。我只添加了 1 条文本、2 个按钮、2 个计时器和 1 个图像视图:

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/imageView"
    android:layout_alignRight="@+id/button2"
    android:layout_alignEnd="@+id/button2"
    android:contentDescription="@string/background_1"
    android:layout_alignParentEnd="@+id/button"
    android:layout_alignParentRight="@+id/button"
    android:background="@drawable/green_background"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />



<TextView
    android:text="@string/revision"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="60sp"
    android:id="@+id/textView"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

<Button
    android:layout_width="150dp"
    android:layout_height="80dp"
    android:text="@string/button_work"
    android:id="@+id/button"
    android:textSize="30sp"
    android:clickable="true"
    android:textColor="#ffe7e7e7"
    android:background="#d1131110"
    android:layout_alignTop="@+id/button2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Button
    android:layout_width="150dp"
    android:layout_height="80dp"
    android:text="@string/button_break"
    android:id="@+id/button2"
    android:textSize="30sp"
    android:clickable="true"
    android:textColor="#ffe7e7e7"
    android:background="#d1131110"
    android:layout_below="@+id/textView"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginTop="59dp" />

<Chronometer
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/chronometer"
    android:textSize="50sp"
    android:layout_below="@+id/button"
    android:layout_alignLeft="@+id/button"
    android:layout_alignStart="@+id/button"
    android:layout_marginTop="180dp" />

<Chronometer
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/chronometer2"
    android:textSize="50sp"
    android:layout_alignTop="@+id/chronometer"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

如何让我的背景图片 (green_background) 完全填满手机屏幕?

【问题讨论】:

  • 制作一个布局和内部布局,你可以把所有这些代码和布局给宽度填充父级,高度也给填充父级,并为该布局提供背景为(green_background)。
  • 我按照你的建议做了,但应用程序无法渲染,因为它“无法将 green_background 转换为可绘制对象,因为“green_background”是一个空的主体。你知道我该如何解决这个问题吗?这是什么我改变了,正如我认为你建议的那样:
  • green_background 不是图像,green_background 是什么?你在哪里得到这个?什么是“grass_background”
  • 抱歉,我一直在更改“green_background”的大小,看看是否有所不同。在此期间,我将“green_background”的名称更改为“grass_background”,以便区分它们,但我认为它不会影响您。请在我的问题中考虑“green_background”和“grass_background”同一件事。 green_background 在我的“res”中的“drawable”文件夹中。它的文件类型是 png。
  • 是框架布局是父或子,如果它是父,它将起作用,否则删除父布局的填充或边距尝试它

标签: android android-studio imageview background-image fill-parent


【解决方案1】:

我认为这是由于顶级容器中存在填充而发生的。在您的情况下,这是相对布局 如果你的相对布局看起来像下面的代码

<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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" >

或者类似的东西,去掉这4行代码

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"

这会对您的布局应用一些填充,因此背景不会完全可见。

如果该图像视图的唯一用途是显示背景..这是为您的布局提供背景的更简单和首选的方式

<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"
android:background="@drawable/green_background"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="revision"
    android:textSize="60sp" />

<Button
    android:id="@+id/button"
    android:layout_width="150dp"
    android:layout_height="80dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignTop="@+id/button2"
    android:background="#d1131110"
    android:clickable="true"
    android:text="button_work"
    android:textColor="#ffe7e7e7"
    android:textSize="30sp" />

<Button
    android:id="@+id/button2"
    android:layout_width="150dp"
    android:layout_height="80dp"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/textView"
    android:layout_marginTop="59dp"
    android:background="#d1131110"
    android:clickable="true"
    android:text="button_break"
    android:textColor="#ffe7e7e7"
    android:textSize="30sp" />

<Chronometer
    android:id="@+id/chronometer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button"
    android:layout_alignStart="@+id/button"
    android:layout_below="@+id/button"
    android:layout_marginTop="180dp"
    android:textSize="50sp" />

<Chronometer
    android:id="@+id/chronometer2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/chronometer"
    android:textSize="50sp" />

请注意,图像视图已被移除,整个布局的背景由相关布局中的单行代码android:background="@drawable/green_background" 应用

【讨论】:

  • 这解决了我的问题,我的背景图像现在填满了屏幕。谢谢!虽然我的应用程序非常基础,但您认为此代码删除会影响其他功能吗?
  • 感谢您的编辑,我将使用首选方法。非常感谢您的宝贵时间。
  • 这只会在布局中添加填充。所以删除它不会影响其他功能,除非您特别想要布局中的填充。请检查更新的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多