/**设置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();
}
Bitmap内存优化123
最新推荐文章于 2024-04-09 20:00:52 发布