观察到一个奇怪的现象,比如:
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是在那个函数里调用的。
解决方案 »
- Android CTS Holo Testing Fails
- 大家好,如何编写一个androidLKM将另一个LKM删除掉?
- ServerSocket做的端口监听时间长老是被回收的问题
- struts2文件下载的问题
- android的这个段错误能看出在哪里发生异常的不?
- 在做手机微博,遇到一个问题,求解
- 请问如果把一张图片设置成墙纸
- 调用相机相册,回调data为null
- gridview在超大屏幕显示的问题
- Android View 按一定的角度移动
- Android-自动适应屏幕大小的问题
- 在BroadcastReceiver类中启动Activity,有时能进入到所启动的Activity类中,有时进入不了
这是一个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);
}
}