Bitmap内存优化123

来源:互联网 发布:树木识别软件下载 编辑:程序博客网 时间:2024/06/01 08:18
/**设置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();}

原创粉丝点击