Bitmap内存优化123

		/**设置child item的图片和名称
		 * @param array
		 * @param names
		 * @param reflected  是否使用倒影
		 */ 
//		public void SetImages( boolean reflected){
			public void SetImages(ChannelInfo[] channels, boolean reflected){
				Bitmap originalImage = null;
				Bitmap bitmapReflected = null;
			//转盘子项
			mImages = new CarouselItem[channels.length];
			
			for(int i = 0; i< channels.length; i++)
			{
				//从缓存中取bitmap
/*				 bitmaps[i]=CacheBitmap.getInstance().getBitmapFromMemoryCache(FlyTvApplication.channelLocal[i].getChannelImage());
//				drawables[i] = array.getDrawable(i);
//				Bitmap originalImage = ((BitmapDrawable)drawables[i]).getBitmap();
				if (bitmaps[i]==null) {
					Bitmap tempBitmap= UtilPicture.picToBitmap(UtilSystemInfo.pathRoot+FlyTvApplication.pathChannelsPic+"/"+FlyTvApplication.channelLocal[i].getChannelImage(),FlyTvApplication.channelLocal[i].getChannelImage());
					bitmaps[i]= UtilPicture.resizeBitmap(tempBitmap, FlyTvApplication.scale);
					//加入缓存
					CacheBitmap.getInstance().addBitmapToMemoryCache(FlyTvApplication.channelLocal[i].getChannelImage(), bitmaps[i]);
				}
				Bitmap originalImage = bitmaps[i];*/
				//作为原始使用的bitmap在生成目标bitmap后必须回收
				 originalImage= CacheBitmap.getInstance().getBitmapFromMemoryCache("flytv");
				if (originalImage==null) {
					 originalImage = UtilPicture.getResBitmap(mContext, R.drawable.carousel_flytv);		
					 CacheBitmap.getInstance().addBitmapToMemoryCache("flytv", originalImage);
				}
				
				 bitmapReflected = null;
				if(reflected){
					 bitmapReflected=getBitmapWithReflaction(originalImage);
				}
							
				CarouselItem item = new CarouselItem(mContext);
				item.setIndex(i);
				item.setImageBitmap(bitmapReflected);
//					item.setText(itemNames[i]);
				item.setText(channels[i].getChannelTitle());
				mImages[i] = item;
				//recycel
//				originalImage.recycle();
//				bitmapReflected.recycle();
			}
			originalImage.recycle();
		}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值