0

在此处输入图像描述

在此处输入图像描述

我有两个图像视图 view1,view2.view1 是黑色图像,view2 是白色图像。这里 view1 在第一张图片中是单一的。view2 在第二张图片中超过 view1。

1)我如何检查 view1 是单一的(在第一张图片中),上面没有其他视图?

2)我如何检查 view1 不是单一的(在第二张图像中),另一个视图在它上面?

4

4 回答 4

1

您尝试检查 z 轴,请参阅此问题并使用 FrameLayout: Layout Layers? Z轴?

<FrameLayout>
  <RelativeLayout>
    <!--  Place the objects you want on the bottom here -->
  </RelativeLayout>


  <RelativeLayout>
    <!--  Place the objects you want on the top here -->
  </RelativeLayout>
</FrameLayout>

正如另一点指出的那样,您必须使内部视图可见或不可见。

希望这可以帮助。

于 2013-06-14T14:39:20.563 回答
0

尝试这样的事情:

ImageView outer = (ImageView) view.findViewById(R.id.outer);
ImageView inner = (ImageView) view.findViewById(R.id.inner);

// Do all your overlapping code here

// When you want to check if they are visible try something like this :
if (View.VISIBLE == inner.isVisible())
{
    //Do something
}
于 2013-06-14T12:04:51.173 回答
0

如果您想在用户与其交互时更改图像(例如,您有一个复选框,并且您希望在选中时使用 imageview1,而在未选中时使用 imageview2),那么您应该在res/drawable中添加一个包含选择器的文件(其中 radio_selected 是 imageView1 中的图片,radio_deselected 是 imageView2 中的图片):

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

    <item android:drawable="@drawable/radio_select" android:state_checked="true"/>
    <item android:drawable="@drawable/radio_deselect"/>
 <!-- default not pressed -->

</selector>

您将拥有一个图像视图,其背景设置为包含上述选择器的文件的名称。这样,当用户与控件交互时,状态将自动更改,图像也会自动更改。

如果您需要这种方法的任何帮助,请告诉我。

于 2013-06-14T12:05:57.637 回答
0

无论一个是否在另一个之上,您都可以检查两个图像视图的可见性。

//...
ImageView v1 = (ImageView) findViewById(R.id.view1);
ImageView v2 = (ImageView) findViewById(R.id.view2);

if(v2.getVisibility() != View.VISIBLE)
   //The view v2 is not visible so V1 is alone
else
   //Both views are visible

如果 v2 不可见,它将不会位于第一个视图的顶部。

希望能帮助到你 :)

于 2013-06-14T11:56:29.303 回答