我有两个图像视图 view1,view2.view1 是黑色图像,view2 是白色图像。这里 view1 在第一张图片中是单一的。view2 在第二张图片中超过 view1。
1)我如何检查 view1 是单一的(在第一张图片中),上面没有其他视图?
2)我如何检查 view1 不是单一的(在第二张图像中),另一个视图在它上面?
我有两个图像视图 view1,view2.view1 是黑色图像,view2 是白色图像。这里 view1 在第一张图片中是单一的。view2 在第二张图片中超过 view1。
1)我如何检查 view1 是单一的(在第一张图片中),上面没有其他视图?
2)我如何检查 view1 不是单一的(在第二张图像中),另一个视图在它上面?
您尝试检查 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>
正如另一点指出的那样,您必须使内部视图可见或不可见。
希望这可以帮助。
尝试这样的事情:
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
}
如果您想在用户与其交互时更改图像(例如,您有一个复选框,并且您希望在选中时使用 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>
您将拥有一个图像视图,其背景设置为包含上述选择器的文件的名称。这样,当用户与控件交互时,状态将自动更改,图像也会自动更改。
如果您需要这种方法的任何帮助,请告诉我。
无论一个是否在另一个之上,您都可以检查两个图像视图的可见性。
//...
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 不可见,它将不会位于第一个视图的顶部。
希望能帮助到你 :)