我有两个图像视图view1,view2.view1是黑色图像,view2是白色图像。 这里view1在第一张图片中是单个的.view2在第二张图片中超过view1。
1)我如何检查view1是否为单一(在第一张图片中),其他视图是否在它上面?
2)我如何检查view1不是单一的(在第二张图片中),另一个视图在它上面?
答案 0 :(得分:1)
您尝试检查z轴,请参阅此问题并使用FrameLayout:Layout Layers? Z-Axis?
<FrameLayout>
<RelativeLayout>
<!-- Place the objects you want on the bottom here -->
</RelativeLayout>
<RelativeLayout>
<!-- Place the objects you want on the top here -->
</RelativeLayout>
</FrameLayout>
正如另一个指出的那样,你必须使内部视图可见或不可见。
希望这有帮助。
答案 1 :(得分: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不可见,它将不会位于第一个视图的顶部。
希望有所帮助:)
答案 2 :(得分: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
}
答案 3 :(得分: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>
您将拥有一个imageView,其背景设置为包含上述选择器的文件的名称。这样,当用户与控件交互时,状态将自动改变,图像也将自动改变。
如果您对此方法有任何帮助,请告诉我。