简体   繁体   中英

Clickable area of an imageView

I have a scroll view with 1 child. a linear layout that has many children, each is a "row" containing 5 image views. What I want to happen is when you click on an image it launches a new activity. However, the issue is that it seems touching only the top half of an image actually is registered as a "click" on the image you actually pressed, and anything else in the bottom half of the image is registered as a "click" of the image directly below the image you actually pressed. I am using a nexus 7 2013 for testing, and each thumbnail is 100 x 100 so I am considering that as a reason why, but is there a way to make sure the image you press is actually what is registered?

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:weightSum="150" android:orientation="vertical">
    <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginBottom="dp"
            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-50dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p1"
                android:layout_weight="20" android:layout_marginLeft="5dp">

                </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p2"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p3"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p4"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p5"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
            </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p6"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p7"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p8"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p9"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p10"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p11"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p12"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p13"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p14"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p15"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p16"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p17"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p18"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p19"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p20"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p21"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p22"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p23"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p24"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p25"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p26"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p27"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p28"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p29"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p30"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p31"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p32"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p33"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p34"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p35"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p36"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p37"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p38"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p39"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p40"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p41"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p42"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p43"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p44"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p45"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p46"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p47"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p48"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p49"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p50"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p51"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p52"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p53"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p54"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p55"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p56"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p57"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p58"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p59"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p60"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p61"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p62"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p63"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p64"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p65"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p66"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p67"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p68"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p69"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p70"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>

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

            android:layout_weight="10" android:paddingTop="-50dp" android:layout_marginTop="-135dp">
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p71"
                android:layout_weight="20" android:layout_marginLeft="5dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p72"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p73"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="232dp"
                android:id="@+id/p74"
                android:layout_weight="20" android:layout_marginLeft="10dp">

        </ImageView>
        <ImageView

                android:layout_width="232dp"
                android:layout_height="fill_parent"
                android:id="@+id/p75"
                android:layout_weight="20" android:layout_marginLeft="10dp" android:layout_marginRight="5dp">

        </ImageView>
    </LinearLayout>
</LinearLayout>










    </ScrollView>

Your problem is due to negative padding and margins on successive linear layout rows.

Highly recommend you switch to GridLayout which is designed for the purpose you are trying to achieve, as your layout is a little bit hard to manage I think.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM