0
私は回転しているImageViewを持っています。回転が終了した後に画像自体のスケールを変更したいと思います。 (私は回転しながら滑らかなアニメーション回転を望むが、それは別の話題である)私はこれを達成するために実行可能にする必要があると感じているが、正しく動作させることはできない。イメージは回転前と同じサイズを保持します。回転後にImageView内の画像をフィッティングする
private void rotate() {
imageView.animate().rotationBy(90).setDuration(100).setInterpolator(new LinearInterpolator()).start();
imageView.post(new Runnable() {
@Override
public void run() {
fitImageView();
}
});
}
private void fitImageView() {
float imageWidth = imageView.getDrawable().getIntrinsicWidth();
float imageHeight = imageView.getDrawable().getIntrinsicHeight();
RectF drawableRect = new RectF(0, 0, imageWidth, imageHeight);
RectF viewRect = new RectF(0, 0, imageView.getWidth(), imageView.getHeight());
Matrix matrix = new Matrix();
matrix.setRectToRect(drawableRect, viewRect, Matrix.ScaleToFit.CENTER);
imageView.setImageMatrix(matrix);
imageView.invalidate();
}
fitImageView()それが最初に初期化されるときに、画像に合わせて正常に動作し、私はfitImageView()ログから確認されている)は、(回転中にいつかと呼ばれています。
fitimageview()はうまくいきますが、完全なアニメーションになる前に呼び出されていますか? – dipali
そうだと思います。ログからアニメーションの前に呼び出されているかどうかは分かりません。 – Mardymar