观察到一个奇怪的现象,比如:
Log.d("abc","i:"+i+"j:"+j);
boolean b = (i==j);
Log.d("abc","i==j:"+b);结果显示完全乱套,在i和j相等的时候,可能显示为false,反之可能为true。实际当中,第二个记录的地方时一个函数,Log是在那个函数里调用的。
Log.d("abc","i:"+i+"j:"+j);
boolean b = (i==j);
Log.d("abc","i==j:"+b);结果显示完全乱套,在i和j相等的时候,可能显示为false,反之可能为true。实际当中,第二个记录的地方时一个函数,Log是在那个函数里调用的。
这是一个Gallery控件,返回的GalleryView用来显示。发现一个非常奇怪的现象,点击后,图标是变大了,说明setPadding(10,10,10,10)生效了,但是绘图部分,死活不能绘制矩形,如果跟踪会发现isSelected总是false。
public class GalleryView extends ImageView{
protected boolean isSelected = false;
public GalleryView(Context context){
super(context);
setScaleType(ScaleType.FIT_XY);
setPadding(10,10,10,10);
}
public void setSelected(boolean select){
//Log.d("CurrentTask",""+index+",setSelected: "+isSelected);
if(isSelected==select)
return;
isSelected = select;
if(isSelected)
setPadding(3,3,3,3);
else
setPadding(10,10,10,10);
//this.invalidate();
}
public boolean getSelected(){
return isSelected;
}
@Override
protected void onDraw(Canvas canvas){
if(!isSelected){
super.onDraw(canvas);
return;
}
Paint paint = new Paint();
paint.setColor(0xffffff00);
paint.setStrokeWidth(1);
paint.setStyle(Style.STROKE);
canvas.drawRect(new Rect(0, 3, getWidth()-1,getHeight()-4),paint);
super.onDraw(canvas);
}
}