我需要顯示淡入淡出的圖像按鈕(以及出入淡出等...) 透明色可以使用setAlpha設置,但我怎樣才能淡入淡出?我的意思是我不能在另一個線程上做,因爲你需要在UI線程上做這樣的事情,對吧?Android:淡入淡出視圖
我想它可以用動畫來完成,但我沒有發現任何東西,因爲我沒有與任何動畫體驗,真的不知道該怎麼尋找...
其實我真正想要的是褪色一個圖像和另一個出來,但我想最簡單的方法是將第一個圖像按鈕放置在第二個圖像下方,然後淡入第二個圖像。還是有更簡單的方法來做到這一點?
我需要顯示淡入淡出的圖像按鈕(以及出入淡出等...) 透明色可以使用setAlpha設置,但我怎樣才能淡入淡出?我的意思是我不能在另一個線程上做,因爲你需要在UI線程上做這樣的事情,對吧?Android:淡入淡出視圖
我想它可以用動畫來完成,但我沒有發現任何東西,因爲我沒有與任何動畫體驗,真的不知道該怎麼尋找...
其實我真正想要的是褪色一個圖像和另一個出來,但我想最簡單的方法是將第一個圖像按鈕放置在第二個圖像下方,然後淡入第二個圖像。還是有更簡單的方法來做到這一點?
這是我現在使用的解決方案,即在API級別低於12的工作原理:
AlphaAnimation anim = new AlphaAnimation(1.0f, 0.0f);
anim.setDuration(1000);
anim.setRepeatCount(NUM_REPEATS);
anim.setRepeatMode(Animation.REVERSE);
button.startAnimation(anim);
這是我們在我們的項目中使用的動畫。微調是一個視圖,所以你可以用你的imageview來改變它。所以確實在彼此之上有兩個圖像,一個是看不見的。這是我們如何做到的。希望能幫助到你。
spinner.setVisibility(View.VISIBLE);
spinner.setAlpha(0);
spinner.animate().setDuration(200).alpha(1).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
spinner.setVisibility(View.VISIBLE);
}
});
infoActivityContent.animate().setDuration(200).alpha(0).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
infoActivityContent.setVisibility(View.GONE);
mainPresenter.logout();
}
});
這也需要API級別12,我需要8個。無論如何,我會使用它,直到我找到別的東西。如果我想無限地淡入淡出(這意味着我需要從淡出動畫結束偵聽器中開始淡入淡出),它最終會導致內存溢出嗎? – DominicM
沒有,通常不應該是一個問題。它們都在不同的線程上運行,一旦第一個完成所有分配的內存將被釋放。 –
實現動畫類(您可以通過XML加載它或動態創建它)。
然後,您可以通過API setAnimation(動畫動畫)對其進行設置。
您可以演變成你的第二個像你的第一個圖像的幾個連續幀和背部,然後將它們定義爲animation-list
和的onCreate
button_frames.xml啓動動畫:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/frame1" android:duration="100" />
<item android:drawable="@drawable/frame2" android:duration="100" />
....
佈局:
<ImageView android:id="@+id/button"
android:background="@drawable/button_frames"/>
的OnCreate:
ImageView button= (ImageView)findViewById(R.id.button);
mAnimation = (AnimationDrawable) animationView.getBackground();
button.postDelayed(new Runnable() {
public void run() {
mAnimation.start();
}
}, 100);
您必須閱讀Crossfading Two Views從Android developers
。在本教程中解釋瞭如何做你想做的事情。
這看起來非常好,但它需要API等級12,我需要等級8(我忘了提及...) – DominicM
你可以使用動畫,並創建您的阿爾法過渡動畫'XML'文件,然後設置它到'ImageButton' – kabuto178