我的图像视图大小调整到给定范围内的随机大小。下面的方法在onCreate中调用,并且在第一次调用时工作正常。但是当在onTouchEvent中调用它时,该方法会运行,但不会调整imageView的大小。
public void setInnerCircleSize()
{
widthMultiplier = r.nextInt(75 - 25) + 25;
widthToSet = ((widthScreen / 100) * widthMultiplier);
circle.getLayoutParams().height = widthToSet;
circle.getLayoutParams().width = widthToSet;
}
public boolean onTouchEvent(MotionEvent event) {
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
if(hitCheck == true)
{
hitCheck = false;
setInnerCircleSize();
}
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
hitCheck = true;
break;
}
}
当有一个动作事件并且随机变量被创建时,setInnerCircleSize被称为罚款,因此在这方面没有任何错误。只是它不会再次调整大小,即使从onCreate调用它时效果非常好。
答案 0 :(得分:1)
你必须使视图无效,告诉android重绘它。由于您要更改视图边界,我认为您可以使用:
View.requestLayout();