如何拉伸图像以水平填充页面?

时间:2014-01-19 16:40:44

标签: java android xml

如下图所示,我有6个水平布局,每个有6个图像按钮,总共36个图像按钮。每个按钮的xdhpi为120x123像素,hdmi为80x92,mdpi文件夹为53x61。在底部,您可以看到此活动的完整XML代码。问题是,我需要那些砖块一直拉伸。正如您所看到的那样,包含这些砖块的布局一直都是如此,但图像却没有。我试图让图像更大,128px,但这根本没有帮助。

enter image description here

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

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="365dp" >

        <ImageView
            android:id="@+id/ivSlika"
            android:layout_width="fill_parent"
            android:layout_height="match_parent" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="365dp"
        android:orientation="vertical" >

        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/ib1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_01"
            android:padding="0dp" />/

        <ImageButton
            android:id="@+id/ib2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_02"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_03"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_04"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_05"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_06"
            android:padding="0dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/ib7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_07"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_08"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_09"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib10"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_10"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib11"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_11"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib12"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_12"
            android:padding="0dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/ib13"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_13"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib14"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_14"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib15"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_15"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib16"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_16"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib17"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_17"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib18"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_18"
            android:padding="0dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/ib19"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_19"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib20"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_20"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib21"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_21"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib22"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_22"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib23"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_23"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib24"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_24"
            android:padding="0dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/ib25"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_25"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib26"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_26"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib27"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_27"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib28"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_28"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib29"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_29"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib30"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_30"
            android:padding="0dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/ib31"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_31"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib32"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_32"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib33"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_33"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib34"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_34"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib35"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_35"
            android:padding="0dp" />

        <ImageButton
            android:id="@+id/ib36"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bricks_36"
            android:padding="0dp" />
    </LinearLayout>

    </LinearLayout>

</FrameLayout>

3 个答案:

答案 0 :(得分:1)

要记住的三件事:

  • 将子项的android:layout_width设置为“0dp”
  • 设置父母的android:weightSum(编辑:作为Jason Moore 注意,此属性是可选的,因为默认情况下它设置为 孩子们的layout_weight总和)
  • 按比例设置每个孩子的android:layout_weight(例如 weightSum =“5”,三个孩子:layout_weight =“1”,layout_weight =“3”, layout_weight = “1”)

实施例

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:weightSum="6">

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:text="2" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:text="3" />

    </LinearLayout>

答案 1 :(得分:0)

ImageButton扩展了ImageView,因此可以访问scaleType。这将允许您控制图像在按钮内的拉伸方式。 fitXY将拉伸图像,使其填充ImageView(或ImageButton。)的整个区域。

参考: http://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType

答案 2 :(得分:0)

在ImageButton中再添加一个属性 android:adjustViewBounds =“true”并安装 android:src =“@ drawable / img_icon”使用 android:background =“@ drawable / img_icon”

有关 android:adjustViewBounds Click here.

的详情