我有一個帶有圖像的佈局(嵌入在ImageView中)。我需要旋轉圖像(比方說)逆時針90度。在佈局中旋轉ImageView ...如何?
我寫代碼的動畫圖像旋轉...:
public class MainActivity extends Activity
{
private ImageView mImageView = null;
private Animation mRotateAnimation = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mImageView = (ImageView) findViewById(R.id.my_image);
mRotateAnimation = AnimationUtils.loadAnimation(this, R.anim.my_rotate_90);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
mImageView.startAnimation(mRotateAnimation);
return true;
}
return super.onTouchEvent(event);
}
}
圖像平滑旋轉90度,但隨後彈回原來的狀態。這是Android文檔所說的將在動畫完成後發生的事情。據推測,在動畫已結束的通知中,我應該轉換ImageView(或底層繪圖),並可能使其無效以觸發重繪。
一切順利,除了那我找不到一個方法來做到這一點,我找不到任何其他人的例子。
我試過getImageMatix
/setImageMatrix
mImageView
,沒有明顯的效果。有Drawable的子類可以旋轉圖像,但ImageView上沒有setDrawable()方法,所以我不知道如何使用它。
我搜索了這些例子;雖然其中一些涉及動畫和旋轉(尤其是LunarLander),但它們都不會動畫ImageView,然後將其保留在某種轉換狀態。
當然,我在這裏錯過了一些簡單的... aaaargh,你如何旋轉佈局內的ImageView?
謝謝。
我應該補充一點,90度只是一個不錯的圓形例子。旋轉可以是任何度數,因此「使每個圖像的四個版本:0,90,180和270度旋轉」不會成爲解決方案。 – 2010-02-06 00:46:20