布局:背景图片拉伸

时间:2013-04-18 08:58:24

标签: android android-layout android-widget

我的布局有困难。

作为我的第一个开发项目,我正在尝试制作一个简单的计时器。 我想在背景中有一个天文台的图片以及开始和停止按钮 在应用程序的底部,并排并填充屏幕的宽度。

这是我最好的镜头,但我不满意。

所有小部件都放置正确,但...... 我的背景是拉伸的,我的按钮看起来是垂直压缩的,即使底部的文字有点裁剪。

我发现如果我改变这些行

android:layout_width="fill_parent"
android:layout_height="fill_parent"

通过

android:layout_width="wrap_content"
android:layout_height="wrap_content"

背景还可以,按钮也是..但所有小部件都放在活动的中心。

我该如何解决这个问题?

顺便说一句,如果我想并排按钮,我选择了更好的解决方案吗?

感谢您的帮助! 查尔斯。

...现在我的xml ....

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/background"
tools:context=".Chronosv1" >

<LinearLayout
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical"
   android:layout_weight="2" >

<Chronometer
    android:id="@+id/chronometer1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center" />

</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_weight="1" >

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="50"
        android:text="START" />

     <Button
        android:id="@+id/button2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="50"
        android:text="STOP" />
</LinearLayout>

我试过relativeLayout。 我不知道如何在不使用填充的情况下使用相同大小的两个按钮,如果您希望您的应用程序在不同的屏幕上运行,我认为这不是一个好主意。

无论如何我想出了这个,但我仍然有拉链图像,而且我的按钮尺寸不一样。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
tools:context=".Chronosv1" >

<Chronometer
    android:id="@+id/chronometer1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="Start" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@id/button1"
    android:text="Stop" />

3 个答案:

答案 0 :(得分:0)

尝试RelativeLayout;)我认为这比LinearLayout更容易处理。也许你可以上传一张图片,它会给你一个相对布局的解决方案;)

答案 1 :(得分:0)

你可以尝试一下吗?应该工作IMO。 这是获得布局的更好/万无一失的方法。

<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/background"
tools:context=".Chronosv1" >


<LinearLayout
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2"
android:layout_alignParentBottom="true">
<Button
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_margin="5dp"
android:text="Start" />

<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_margin="5dp"
android:text="Stop" />
</LinearLayout>
<Chronometer
android:id="@+id/chronometer1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/layout1" />
</RelativeLayout> 

答案 2 :(得分:0)

我终于找到了解决方案。

第一个问题:我的9补丁图片隐藏了我的其他组件。

解决方案:在你的linearlayout中添加 android:padding =“0dip” ...这里是给我答案的主题(Android layout broken with 9-patch background

第二个问题:为什么我的照片是拉伸的,而我是按照屏幕的确切尺寸设计的。这是一个愚蠢的问题......这是因为动作栏和上面的另一个栏(带电池电量和其他东西)。

要删除这些栏(包含在主题中),请在清单中使用不同版本的主题。

我选择:Theme.Light.NoTitleBar.Fullscreen。

问题解决了。