在其他按钮下的背景图象

时间:2015-10-13 20:32:02

标签: android layout

我是Android新手,我试图用2个按钮创建一个MainActivity屏幕,1是"对于父母"和#34;对于儿童"。到目前为止,我的布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="10dip"
        android:text="For parent"
        android:id="@+id/parent"
        android:layout_gravity="center_horizontal" />

    <Button
        android:paddingBottom="10dip"
        android:text="For parent"
        android:id="@+id/children"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_centerInParent="true"/>
</LinearLayout>

我有一个背景图片,我希望它成为此活动的背景,并且2个按钮将位于其顶部。我如何存档?什么应该是背景图像的大小?

谢谢

5 个答案:

答案 0 :(得分:0)

它可以是类似下面的内容(imageview被拉伸到整个视图并且后退,因此它将像背景图像一样):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="your_drawable"/>


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="10dip"
        android:text="For parent"
        android:id="@+id/parent"
        android:layout_gravity="center_horizontal" />

    <Button
        android:paddingBottom="10dip"
        android:text="For children"
        android:id="@+id/children"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_centerInParent="true"/>

</RelativeLayout>

答案 1 :(得分:0)

设置根ViewGroup的背景属性。

将此更改为

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

到这个

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/ic_launcher"
        android:scaleType = "centerCrop"         
        android:orientation="vertical">

答案 2 :(得分:0)

您唯一需要做的就是在布局属性中添加下一行:

&#34; android:background =&#34; @ drawable / image&#34;

请记住,您需要将背景图像放入可绘制文件夹中。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/image" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="10dip"
        android:text="For parent"
        android:id="@+id/parent"
        android:layout_gravity="center_horizontal" />

    <Button
        android:paddingBottom="10dip"
        android:text="For parent"
        android:id="@+id/children"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_centerInParent="true"/>    
</LinearLayout>

答案 3 :(得分:0)

将图片放入drawable文件夹。然后将其添加为LinearLayout的背景,其属性为android:background="@drawable/your_image"。您可以将不同的图片尺寸放入适当的可绘制文件夹,例如drawable-hdpidrawable-xhdpi等。您可以阅读有关支持不同屏幕here的信息。 对于简单的颜色和渐变,您可以使用Shape Drawable,对于真实图像,我建议您将图像视图添加到布局(而不是RelativeLayout),将图像设置为ImageView的来源并设置适当的scaleType(fe centerCrop)。

布局层次结构:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/imageView"
        android:src="@drawable/your_drawable"
        android:scaleType="centerCrop"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button2"
        android:layout_below="@+id/button"/>
</RelativeLayout>

答案 4 :(得分:0)

您应该在Android开发者处查看Drawable Resources。他们在那里解释了

  

位图文件是.png,.jpg或.gif文件。当您将它们保存在res / drawable /目录中时,Android会为这些文件中的任何文件创建一个Drawable资源。

因此,您应该导入图像并将其放在/ res / drawable /文件夹中。请记住不同的屏幕尺寸。

您正在寻找的android xml表示法称为 android:background 。在您的代码中,它看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/your_background"
    android:orientation="vertical">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="10dip"
        android:text="For parent"
        android:id="@+id/parent"
        android:layout_gravity="center_horizontal" />

    <Button
        android:paddingBottom="10dip"
        android:text="For parent"
        android:id="@+id/children"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_centerInParent="true"/>
</LinearLayout>

另一个替代方案是添加填充整个背景的ImageView(但此ImageView受其父LayoutParams影响,例如Margin)。使用ImageView可以更自由地处理图像,例如,将ScaleType设置为适合布局的中心。