最近寫程式都一直鬼打牆,總是繞不出來,
剛剛又為了一個奇怪的問題一直繞:
要實現拖曳現果,所以動變更leftMargin ﹠ topMargin,
沒想到畫面死都不動,但新增了一個圖案後,
後現剛剛拖曳的效果是有用的,因為原圖已經被拖到指定的位置了,
只是畫面沒有更新;
原程式碼:
@Override
public boolean onScroll(MotionEvent started, MotionEvent current,
float distanceX, float distanceY) {
if(imgMove){
layoutParams=(RelativeLayout.LayoutParams)img.getLayoutParams();
layoutParams.leftMargin=(int)current.getX()-fromPoint.x;
layoutParams.topMargin=(int)current.getY()-fromPoint.y;
}
return false;
}
想說用invalidate()來達成畫面刷新的效果,
結果Android大人鳥都不鳥我;
後來經歴千山萬水後,終於找到解法:
@Override
public boolean onScroll(MotionEvent started, MotionEvent current,
float distanceX, float distanceY) {
if(imgMove){
layoutParams=(RelativeLayout.LayoutParams)img.getLayoutParams();
layoutParams.leftMargin=(int)current.getX()-fromPoint.x;
layoutParams.topMargin=(int)current.getY()-fromPoint.y;
img.setLayoutParams(layoutParams);
}
return false;
}
加入上面那一行,畫面馬上就可以看到效果了。
又浪費了三個小時的生命,留給後人去乘涼吧!
後人感謝您
回复删除