我開始學習 Java,我遇到了一個 excersize,我需要淡出一個圖像并通過淡入另一個圖像來顯示。我對這個 excersize 的解決方案是有一個 imageView 并淡出第一張圖像,然后將圖像源切換到第二張圖像并將 imageView 淡入以便它應該顯示新圖像。這樣做它會通過淡出然后用新圖像顯示我想要的所有圖像。這是我的程序代碼:public void fade(View view){ ImageView simpsonImageView = findViewById(R.id.simpsonsImageView); simpsonImageView.animate().alpha(0f).setDuration(3000); simpsonImageView.setImageResource(R.drawable.bart); simpsonImageView.animate().alpha(1f).setDuration(3000); simpsonImageView.animate().alpha(0f).setDuration(3000); simpsonImageView.setImageResource(R.drawable.lisa); simpsonImageView.animate().alpha(1f).setDuration(3000);}現(xiàn)在我在教程中看到我正在學習導師為每個圖像使用不同的 imageView。我想知道這兩個解決方案中哪個是正確的或至少可以接受的?;蛘咚娴暮苤匾⑶覂煞N解決方案都很好。
1 回答

倚天杖
TA貢獻1828條經(jīng)驗 獲得超3個贊
只有在使用兩個ImageView
s時才能實現(xiàn)一件事:您可以對兩個圖像進行淡入淡出,以便屏幕永遠不會完全空白。
但是,在您的練習中,您只想按順序交換圖像。
從性能的角度來看,一個ImageView
可能比兩個好,因為它顯然會占用更少的內(nèi)存和 CPU 時間,但我懷疑這會對現(xiàn)代設備產(chǎn)生明顯的影響。
因此,只要您不同時為大量圖片制作動畫(想想足球隊而不是辛普森一家),兩種解決方案都可以。
請注意,使用您的代碼原樣將根本看不到動畫,并且ImageView
似乎只顯示第二張圖片。這是因為animate()
觸發(fā)動畫但它不會等到動畫完成。因此,您需要使用AnimationListener
orHandler.postDelayed()
來交換圖片并在上一個動畫完成后立即開始下一個動畫。
添加回答
舉報
0/150
提交
取消