2011-01-14 35 views
12

Theo như tôi biết, chúng tôi có thể tạo thông báo trong Android bằng Trình quản lý thông báo + Chế độ xem từ xa.Hoạt ảnh trong thanh Thông báo Chế độ xem tùy chỉnh

Tôi đang tạo thông báo để tải xuống các tệp Mp3. Và tôi muốn một hình động bên cạnh Nó. Cho đến nay tôi đã học được từ các diễn đàn rằng điều đó là không thể.

Tuy nhiên tôi thấy video cho ứng dụng Android tải xuống và hiển thị hoạt ảnh bên cạnh khi tải xuống. Liên kết: http://www.youtube.com/watch?v=yNcs-sS2nFU&feature=related

Ai đó có thể cho tôi biết cách tốt nhất để đạt được điều đó.

+0

Đoạn video có vẻ như nó là từ Froyo hay Gingerbread. Bạn nên kiểm tra lớp NotificationBuilder cho phép bạn thiết lập một giá trị tiến độ để đạt được thanh ngang mà bạn nhìn thấy trong video. – iHearGeoff

Trả lời

24

Cách tốt nhất tôi đã tìm thấy để hiển thị hoạt ảnh tùy chỉnh trong thông báo là sử dụng AnimationDrawable làm tài nguyên có ID. Sau đó, chỉ cần chỉ định ID tài nguyên có thể kéo khi bạn đăng thông báo của mình. Không cần thêm mã nào để cập nhật từng khung hình của hoạt ảnh. Các hình ảnh động xử lý có thể vẽ được cho bạn.

Dưới đây là một liên kết đến tài liệu: http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html

Vì vậy, ví dụ bạn sẽ cần phải:

  1. Thêm một file xml (chẳng hạn như "wheelAnim.xml") để res của bạn/drawable/ thư mục với các nội dung sau:

    <!-- Animation frames are wheel0.png -- wheel5.png files inside the 
        res/drawable/ folder --> 
    <animation-list android:id="selected" android:oneshot="false"> 
        <item android:drawable="@drawable/wheel0" android:duration="50" /> 
        <item android:drawable="@drawable/wheel1" android:duration="50" /> 
        <item android:drawable="@drawable/wheel2" android:duration="50" /> 
        <item android:drawable="@drawable/wheel3" android:duration="50" /> 
        <item android:drawable="@drawable/wheel4" android:duration="50" /> 
        <item android:drawable="@drawable/wheel5" android:duration="50" /> 
    </animation-list> 
    
  2. Thêm mỗi tài liệu tham khảo drawable trong file xml bạn ju st được tạo cho danh sách hoạt ảnh (có thể là định dạng PNG hoặc hình ảnh khác) trong thư mục res/drawable/.

  3. Sử dụng ID tài nguyên của danh sách hoạt ảnh (trong ví dụ này là "R.drawable.wheelAnim") trong mã của bạn. Ví dụ:

    Notification notification = new Notification(R.drawable.wheelAnim, null, 
        System.currentTimeMillis()); 
    
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, 
        new Intent(), 0); 
    
    notification.flags |= Notification.FLAG_AUTO_CANCEL; 
    
    notification.setLatestEventInfo(this, getText(R.string.someTitle), 
        getText(R.string.someText), pendingIntent); 
    
    ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).notify(
        uid, notification); 
    
+2

Tôi đã thử các hình vẽ động trong lớp NotificationBuilder mới hơn dưới dạng biểu tượng nhỏ và trông tuyệt vời trên thanh trạng thái. Tuy nhiên, khi bạn kéo ngăn thông báo xuống, biểu tượng KHÔNG hoạt ảnh. Có ai có bất kỳ kinh nghiệm với điều này, và bạn đã có bất kỳ thành công làm cho các biểu tượng hoạt hình trong chế độ xem kéo xuống? – iHearGeoff

+0

Tôi có thể lấy phần hình ảnh bánh xe đó ở đâu? – Abhijit

+0

@ iHearGeoff bạn có chắc chắn không phải là biểu tượng lớn trong thông báo khi bạn kéo xuống? –

2

Trong documentation để tạo thông báo trên thanh trạng thái, nó nói bạn có thể lướt qua một loạt các hình ảnh được định nghĩa trong một LevelListDrawable bằng cách thay đổi iconLevel tài sản của lớp Notification:

iconLevel lĩnh vực

Giá trị này cho biết mức hiện tại của một LevelListDrawable được sử dụng cho biểu tượng thông báo . Bạn có thể tạo biểu tượng động trên thanh trạng thái bằng cách thay đổi giá trị này thành tương quan với biểu tượng được xác định trong một LevelListDrawable. Xem tham chiếu LevelListDrawable để biết thêm thông tin.

+0

Tôi biết điều đó nhưng sự cố của tôi đang làm động đối tượng remoteView. Tôi đang làm Là gửi thông báo một lần nữa và một lần nữa cho hiệu ứng hình ảnh động. Nhưng các bài viết chủ đề sau 3000ms, và nếu tôi giảm giá trị xuống dưới 2000 mili giây. Giả lập của tôi bị treo sau một vài lần cập nhật và tôi mong thiết bị phản ứng theo cùng một cách. Video cho thấy một cái gì đó rất thú vị Nó hoạt hình một đối tượng với sự chậm trễ 100ms - 500ms. Điều đó làm tôi ngạc nhiên. – JehandadK

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