我有一个应用程序,我在固定角度设置一些图像。在270到90角度之间的角度,我隐藏图像使用隐形。但仍然它的触摸事件工作。显然因为图像在那里。我想以编程方式在这些角度禁用触摸事件。任何人都可以指导我如何实现这一点。
这是我在onLayout中的代码 -
float angleDelay = 360 / getChildCount();
if (!childRotate) {
for (Integer i = 0; i < childCount; i++) {
final Left_Unit textName = (Left_Unit) getChildAt(i);
if (textName.getVisibility() == GONE) {
continue;
}
if (angle > 360) {
angle -= 360;
} else {
if (angle < 0) {
angle += 360;
}
}
textName.setAngle(angle);
textName.setPosition(i);
if (position == name.size()) {
position = 0;
}
if (position < childCount) {
// textName.setVisibility(View.VISIBLE);
textName.setTextname(name.get(position));
textName.setText(name.get(position));
position++;
}
if (angle <= 270 && angle >= 90) {
textName.setVisibility(View.VISIBLE);
}
它工作正常。
为了轮换,我调用了这个方法
for (Integer i = 0; i < childCount; i++) {
if (angle > 360) {
angle -= 360;
} else {
if (angle < 0) {
angle += 360;
}
}
final Left_Unit child = (Left_Unit) getChildAt(i);
if (child.getVisibility() == GONE) {
continue;
}
if (position == name.size()) {
position = 0;
}
if (angle > 85 && angle < 90) {
// child.setVisibility(View.VISIBLE);
child.setTextname(name.get(position));
child.setText(name.get(position));
position++;
}
if (angle <= 270 && angle >= 90) {
child.setVisibility(View.VISIBLE);
} else {
child.setVisibility(View.GONE);//when i use View.INVISIBLE it works fine & images become visible after rotation but with gone it's not visible again
}
这是我的xml
<com.example.converter.view.Left_Unit
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a1"
android:textColor="#ffffff"
android:visibility="invisible"
left:textname="text1" />
答案 0 :(得分:0)
使用if(angle&gt; = 270&amp;&amp; angle&lt; = 90){image.setVisibility(View.GONE);它会解决你的问题
答案 1 :(得分:0)
if(angle >=270 && angle <=90){ image.setEnabled(false)} //I guess when you add the image
如果由于某种原因无效,请点击:
image.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
if(!(angle >=270 && angle <=90)){
//handle click
}
}
}
答案 2 :(得分:0)
首先,您需要以编程方式检查视图是否可见。使用此代码检查可见性
image.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (v.getVisibility() == View.VISIBLE) {
// Its visible
} else {
do nothing
}
}
});