楼下省去不必要的循环想法很好,但是代码好像不对吧?应该把return换成break,这样才是跳出循环。还有isSuccess还是应该赋值为false。
2015-08-24
mItemWitdh=(mWidth-mPadding*2-mMargin*(mColumn-1))/mColumn;
这个理解
这个理解
2015-08-08
如果检查的时候有一个失败直接返回,可以省去不必要的循环,效率更高!代码如下:
private void checkSuccess()
{
for (int i = 0; i < mGamePintuItems.length; i++){
ImageView imageView = mGamePintuItems[i];
if (getImageIndexByTag((String) imageView.getTag()) != i) return;
。。。
mHandler.sendEmptyMessage(NEXT_LEVEL);
}
private void checkSuccess()
{
for (int i = 0; i < mGamePintuItems.length; i++){
ImageView imageView = mGamePintuItems[i];
if (getImageIndexByTag((String) imageView.getTag()) != i) return;
。。。
mHandler.sendEmptyMessage(NEXT_LEVEL);
}
2015-08-02
可以用Handler处理,定义常量private static final int REMOVE_VIEWS = 0x112;
在onAnimationEnd里面发送消息mHandler.sendEmptyMessage(REMOVE_VIEWS);
在Handler里面的handleMessage函数里面加个case进行处理
case REMOVE_VIEWS:
mAnimLayout.removeAllViews();
break;
在onAnimationEnd里面发送消息mHandler.sendEmptyMessage(REMOVE_VIEWS);
在Handler里面的handleMessage函数里面加个case进行处理
case REMOVE_VIEWS:
mAnimLayout.removeAllViews();
break;
2015-08-02
我也遇到过报空指针的异常,主要就是mAnimLayout.removeAllViews();
在onend里调用引起的。使用以下方法就可以解决掉该问题了,将remove操作放在handler中处理即可
Handler h=new Handler();
h.post(new Runnable() {
@Override
public void run(){
mAnimLayout.removeAllViews();
}
});
在onend里调用引起的。使用以下方法就可以解决掉该问题了,将remove操作放在handler中处理即可
Handler h=new Handler();
h.post(new Runnable() {
@Override
public void run(){
mAnimLayout.removeAllViews();
}
});
2015-07-28