android 狀態欄及通知欄中的下載動畫效果實現

android 下載時狀態欄及通知欄中的下載動畫

在下載APK時,看到通知欄和狀態欄中一般下載的圖標都是動態的,以爲是.gif圖,結果經過試驗,.gif的圖根本就不是動態,後來通過查資料才知道,原來是RemoteViews不支持,後來經過朋友的提示,用了幀動畫的方式替代了gif動態圖,結果就是動態下載圖了,不多說,看下代碼:


1.首先在開啓下載線程前初始化一些資源


/**
	  * 初始化通知欄狀態(此方法在開始下載APK線程前調用)
	  * @Title: initNotification 
	  * @Description: 
	  * @throws 
	  * @date 2015-4-29
	 */
	private void initNotification(){
		mNotificationManager = (NotificationManager)mContext.getSystemService(mContext.NOTIFICATION_SERVICE);
		//anim_statusbar_progress_download 狀態欄中的下載動畫
		<span style="color:#FF0000;">mNotification=new Notification(R.drawable.anim_statusbar_progress_download, "下載",  System.currentTimeMillis());</span>
		mNotification.contentView=new RemoteViews(mContext.getPackageName(), R.layout.dialog_downloadprogress_layout);
		mNotification.contentView.setImageViewResource(R.id.download_Gif, R.drawable.notify_download_img);
		mNotification.contentView.setProgressBar(R.id.loadProgressBar, 0, 0, true);
		mNotification.contentView.setViewVisibility(R.id.loadProgressBar, View.VISIBLE);
		mNotificationManager.notify(0, mNotification);
		updateDownloadAnim();
	}
2.啓動個線程,輪詢設置ImageView的背景,形成動畫
	/**
	  * 通知欄動態中左側的下載圖標動畫 
	  * @Title: updateDownloadAnim 
	  * @Description: TODO(這裏用一句話描述這個方法的作用) 
	  * @throws 
	  * @date 2015-5-7
	 */
	private void updateDownloadAnim(){
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				while(!isDownloadComplet){
					if(downloadCount>4) downloadCount=0;
					downloadAnimation(downloadCount);
					downloadCount++;
					try {
						Thread.sleep(200);
					} catch (InterruptedException e) {
						
					}
				}
			}
		}).start();
	}

3.根據線程中的選中圖片,設置通知欄中的ImageView的圖標,刷新通知,從而顯示出類似於動畫的效果

	/**
	  * 通知欄中的下載圖標動畫
	  * @Title: downloadAnimation 
	  * @Description:
	  * @param count
	  * @throws 
	  * @date 2015-5-7
	 */
	private void downloadAnimation(int count){
		int[] res=new int[]{R.drawable.notify_download_img1,R.drawable.notify_download_img2,R.drawable.notify_download_img3,R.drawable.notify_download_img4,R.drawable.notify_download_img5};
		mNotification.contentView.setImageViewResource(R.id.download_Gif, res[count]);
		<span style="color:#FF0000;">mNotificationManager.notify(0, mNotification);
	}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章