我正在服务中构建通知进度条,方法如下:
private NotificationManager mNotifyManager;
private NotificationCompat.Builder mBuilder;
mBuilder =
new NotificationCompat.Builder(DownloadService.this)
.setSmallIcon(R.drawable.download)
.setContentTitle("MayUp")
.setContentText("Downloading new tools")
.setTicker("Downloading in progress");
mBuilder.setAutoCancel(true);
Intent targetIntent = new Intent(DownloadService.this, ListClass.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(DownloadService.this);
// Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(MyActivity.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(targetIntent);
// PendingIntent contentIntent = PendingIntent.getActivity(DownloadService.this, 0, targetIntent, PendingIntent.FLAG_UPDATE_CURRENT);
// mBuilder.setContentIntent(contentIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
mNotifyManager.notify(1, mBuilder.build());
mBuilder.setProgress(100, 0, false);
mNotifyManager.notify(1, mBuilder.build());
它的工作正常,通知和进度条显示都很好,我想要通知中的简单进度条,这很简单,我没有问题,但我想要的是下面给出的:
我想要的是什么:
我希望我的通知图标应该像Google Play一样动画 商店应用程序,它动画其图标,以显示下载 进展。我也想这样做。请使用建设者告诉我 通知经理我怎么能得到这个,我看过很多教程 但他们已被弃用。
答案 0 :(得分:28)
通过使用此代码,您可以显示使用动画图标下载某些文件的通知:
mBuilder.setContentTitle("Downloading... ")
.setContentText("Please wait...")
.setOngoing(true)
.setOnlyAlertOnce(true)
.setSmallIcon(android.R.drawable.stat_sys_download) // here is the animated icon
.setLargeIcon(BitmapFactory.decodeResource(this.getResources(), android.R.drawable.stat_sys_download)).build();
答案 1 :(得分:5)
使用以下代码创建.xml文件:
<!-- 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>
其中wheel0到5是车轮的图像。确保所有图像都在可绘制文件夹中。
将以下用户代码片段放入代码中以设置动画图标:
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 :(得分:1)
你可以在Rushab patel的答案中制作如上所述的动画列表,但是如果你使用最新的api并且你正在瞄准新的sdk可能会有问题。
因此以下这一行将过时并弃用
通知通知=新通知(R.drawable.wheelAnim, null,System.currentTimeMillis());
在编码通知中太糟糕了,我必须按照你上面所描述的那样建议你使用通知构建器,因此我建议你直接在通知构建器中使用这个动画列表drawable。
来自您的代码段
mBuilder =
new NotificationCompat.Builder(DownloadService.this)
.setSmallIcon(R.drawable.youAnimationList)
.setContentTitle("MayUp")
.setContentText("Downloading new tools")
.setTicker("Downloading in progress");
mBuilder.setAutoCancel(true);