作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个翻页卡应用程序,其中有显示相同图像的图像 GridView ,例如card_back。
单击每个图像时,它会翻转显示另一个图像,该图像对于 gridview 的每个项目都不同,例如card_front。
如果两张卡片显示其卡片正面图像,则 1 秒后两张卡片都会自动翻转以显示卡片背面。
我想做的是,在这1-2秒内,用户不应该能够单击任何其他项目。或者即使他单击,在这2秒内也不应该翻转任何卡片。如何才能我这样做。是否可以使用覆盖整个 gridview 的透明 View ,并使其仅在那 2 秒内可见。有人可以帮助我吗?
gridview.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
pos=position;
findViewById(R.id.view1).setBackgroundColor(getResources().getColor(android.R.color.transparent));
switch(flippedCardCounter)
{
case 0:
flippedCardCounter++; //increase counter
v1=v;
startFlipAnimation(imageView,v1);
break;
//flippedCardCounter = 1 -> one card flipped
case 1:
flippedCardCounter++; //increase counter
v2=v;
startFlipAnimation(imageView,v2);
im1=((ViewHolder) v1.getTag()).img;
im2=((ViewHolder) v2.getTag()).img;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
startUnflipAnimation(im1,v1);
startUnflipAnimation(im2,v2);
}
},1000);
break;
//flippedCardCounter = 2 -> hide two flipped card, flip one card
case 2:
flippedCardCounter = 0;
flippedCardCounter++; //increase counter
startFlipAnimation(imageView,v);
v1=v2=v;
break;
}
}
});
最佳答案
也许这有帮助
public class MyClass{
....
private volatile boolean isLock=false;
gridview.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
if(isLock){return;}
pos=position;
findViewById(R.id.view1).setBackgroundColor(getResources().getColor(android.R.color.transparent));
switch(flippedCardCounter)
{
case 0:
flippedCardCounter++; //increase counter
v1=v;
startFlipAnimation(imageView,v1);
break;
//flippedCardCounter = 1 -> one card flipped
case 1:
flippedCardCounter++; //increase counter
isLock=true;
v2=v;
startFlipAnimation(imageView,v2);
im1=((ViewHolder) v1.getTag()).img;
im2=((ViewHolder) v2.getTag()).img;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
////////////////////////
////////////////////////
startUnflipAnimation(im1,v1);
startUnflipAnimation(im2,v2);
isLock=false;
}
},1000);
break;
//flippedCardCounter = 2 -> hide two flipped card, flip one card
case 2:
flippedCardCounter = 0;
flippedCardCounter++; //increase counter
startFlipAnimation(imageView,v);
v1=v2=v;
break;
}
}
});
....
}
您可以在任何您想要禁用时钟的地方设置isLock
变量。我希望我能伸出援手!
关于java - 如何在 2 秒内不允许用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19345934/
我是一名优秀的程序员,十分优秀!