与屏幕宽度和图像高度匹配的可点击图像

时间:2014-06-26 11:02:13

标签: android android-layout

我正在尝试在android中创建一些可填充屏幕宽度的可点击图像,但可点击表面的高度与图像本身的高度相匹配。

Annoying Extra Space

我有以下代码:     

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/imageButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/image1"
            android:onClick="onClick2" />

    </RelativeLayout>

到目前为止发布的答案都没有帮助我,FitXY没有帮助,因为我想保留宽高比。关于图像按钮或更改比例类型的其他答案,给我完全相同的问题。

7 个答案:

答案 0 :(得分:1)

所需的代码是android:adjustViewBounds="true"

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height = "fill_parent" android:layout_width = "fill_parent">
    <ImageView 
        android:layout_width = "wrap_content"
        android:adjustViewBounds="true"
        android:layout_height = "wrap_content" android:id = "@+id/ImageView1"
        android:src = "@drawable/ic_launcher"/>
    <ImageView android:layout_width = "wrap_content"
        android:layout_height = "wrap_content" android:id = "@+id/ImageView2"
        android:src = "@drawable/ic_launcher"
        android:adjustViewBounds="true"
        android:layout_below = "@+id/ImageView1"/>
</RelativeLayout>

答案 1 :(得分:0)

您忘记将图像视图的宽度设置为match_parent.Also,将relativeLayout设置为android:layout_height =“match_parent”。但最好放一个ImageButton:

    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/image1"
        android:scaleType="centerInside"
        android:onClick="onClick2"
        android:layout_alignParentTop="true" />
 </RelativeLayout>

你可以使用scaleTypes(它也可以在imageView上使用)。在relativeLayout中,您必须设置示例layout_alignParentTop =“true”以将视图设置为顶部。

答案 2 :(得分:0)

在verticalLayout上使用垂直方向

答案 3 :(得分:0)

如果我正确理解您的问题,您可以将图片高度设置为fill_parent({8}及以上的match_parent),如下所示。然后图像的高度与其父元素相同。

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/imageButton"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:src="@drawable/image1"
            android:onClick="onClick2" />

    </RelativeLayout>

答案 4 :(得分:0)

最好将父布局设为LinearLayout,并使用定义的值设置高度,并按照这样做。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:orientation="vertical">
        <ImageView
        android:id="@+id/imageButton"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:src="@drawable/image1"/>

</LinearRelativeLayout>

OR

为imageview本身添加权重,但仍然将LinearLayout作为父级。

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:orientation="vertical">
        <ImageView
        android:id="@+id/imageButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" //This could be like 0.1, 0.7, so long as not 0
        android:src="@drawable/image1"/>

   </LinearRelativeLayout>

调整重量本身可让您以百分比的方式控制图像。

答案 5 :(得分:0)

ScaleType的{​​{1}}设置为ImageViewcenterCrop

fitXY

答案 6 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/imageButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        android:src="@drawable/ic_launcher"
        android:onClick="onClick2" />

</RelativeLayout>