2011-12-07 35 views
22

Trong ứng dụng của tôi tôi sẽ thiết lập alpha sau một hình ảnh động. Giống như:Cách tạo độ trễ 1 giây trước khi đặt chế độ xem alpha?

hideMenu = AnimationUtils.loadAnimation(getApplication(), R.anim.menu_layout_hide); 
menuLayout.startAnimation(hideMenu); 
menuLayout.setVisibility(View.GONE); 

Nhưng tôi muốn đặt độ trễ 1 giây trước khi đặt chế độ xem Alpha. Vì tôi không thể xem Hoạt hình của bố cục đó. Vì vậy, làm thế nào nó là possibe?

Cảm ơn.

Trả lời

45

Trong tập phim hoạt hình xml của bạn, bạn có thể sử dụng android:startOffset thuộc tính:

android:startOffset int. The amount of milliseconds the animation delays after start() is called. 
+0

Cảm ơn bạn đã trả lời. Hãy để tôi thử nó. –

+0

nếu bạn không nhớ, không có ý nghĩa postDelayed trong hình ảnh động bởi vì hoạt hình chính nó đã setStartDelay phương pháp.Xin vui lòng không dùng từ của tôi như là hành vi phạm tội nhưng tôi cho bạn biết những gì tôi cảm thấy. – duggu

+0

@Duggu cảm ơn, câu trả lời cố định. –

68

bạn không thể sử dụng

android: startOffset int. Số lượng mili giây hoạt ảnh sự chậm trễ sau khi bắt đầu() được gọi.

trong hoạt ảnh xml của bạn?

Xem the animation resource documentation.

+1

Điều này phải được đánh dấu là câu trả lời đúng. –

17

Giả sử bạn đang sử dụng phương pháp xem .animate(), bạn có thể thiết lập bắt đầu bù đắp:

view.animate().x(100) 
       .setDuration(5000) 
       .setStartDelay(1000); 
4

Handler là một kỹ thuật tốt để đạt được điều này.

new Handler().postDelayed(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
    view.startAnimation(animation); 
    } 
}, 1000); 
0

Trong trường hợp của bạn, bạn chỉ có thể làm như thế này

hideMenu = AnimationUtils.loadAnimation(getApplication(), R.anim.menu_layout_hide); 

hideMenu.setStartOffset(1000); 

menuLayout.startAnimation(hideMenu); 
menuLayout.setVisibility(View.GONE); 

Trong trường hợp này bạn có thể kiểm soát động giá trị của thời gian bắt đầu từ hoạt động

Các vấn đề liên quan