我希望ImageView在活动开始时改变大小,但是我想让它改变顺畅并尝试使用计时器,但遇到了问题,所以代码看起来像这样:
@Override
protected void onResume() {
super.onResume();
tapImage = (ImageView) findViewById(R.id.tapObject);
CountDownTimer start = new CountDownTimer(10000, 1000) {
@Override
public void onTick(long l) {
imageWidth = imageWidth + 50;
changeSize(imageWidth);
int imageStats = tapImage.getWidth();
Log.d("IMAGE", String.valueOf(imageStats));
}
@Override
public void onFinish() {
Log.d("done", "done");
}
}.start();
}
public void changeSize(int widthSize) {
tapImage.getLayoutParams().width = widthSize;
}
<ImageView
android:id="@+id/tapObject"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:src="@drawable/object"
android:layout_centerVertical="true"
android:onClick="checkTap"
android:layout_centerHorizontal="true" />
问题是它只改变一次然后它不再在日志中改变我看到这样的图片:
D / IMAGE:150 D / IMAGE:150 D / IMAGE:150 D / IMAGE:150 D / IMAGE:150 D / IMAGE:150 D / done:完成。请帮助:)
答案 0 :(得分:0)
在changeSize()
中调用tapImage.requestLayoutParams()
答案 1 :(得分:0)
试试这个:
public void onTick(long l) {
imageWidth = imageWidth + 50;
changeSize(imageWidth);
tapImage.postInvalidate();
int imageStats = tapImage.getWidth();
Log.d("IMAGE", String.valueOf(imageStats));
}