找到两个视图之间的相交?

时间:2013-10-02 18:07:30

标签: android

如何找到两个ImageView之间的交集???

为此,我尝试了这个但没有进展

有人建议我这样做吗?

Code snnipet

imageView = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);

    Rect rect =new Rect();
    imageView.getHitRect(rect);

    Rect rect1 = new Rect();
    imageView2.getHitRect(rect1);

    if(Rect.intersects(rect, rect1)){
        Toast.makeText(this, "hoho", Toast.LENGTH_SHORT).show();
    }

xml文件:

<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"
tools:context=".IntersectActivity" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:src="@drawable/ic_launcher" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginRight="121dp"
    android:src="@drawable/ic_launcher" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:3)

基本上,在onCreate()中,android尚未创建视图,因此任何尝试获取点等的宽度高度位置都不起作用。

相反,覆盖onWindowFocusChanged(boolean focus)并将代码放在那里