Drawble高效创建缩略图方法
来源:互联网 发布:社交网络图谱数据 编辑:程序博客网 时间:2024/06/05 04:03
代码是从android源码代中抽出来的,感觉不错。。。如果大家有什么建议,一起交流,谢谢!!!
public Drawable createIconThumbnail(Drawable icon,int MIconWidth,int mIconHeight) {int width = mIconWidth;int height = mIconHeight;final int iconWidth = icon.getIntrinsicWidth();final int iconHeight = icon.getIntrinsicHeight();if (icon instanceof PaintDrawable) {PaintDrawable painter = (PaintDrawable) icon;painter.setIntrinsicWidth(width);painter.setIntrinsicHeight(height);}if (width > 0 && height > 0) {if (width < iconWidth || height < iconHeight) {final float ratio = (float) iconWidth / iconHeight;if (iconWidth > iconHeight) {height = (int) (width / ratio);} else if (iconHeight > iconWidth) {width = (int) (height * ratio);}final Bitmap.Config c = icon.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565;final Bitmap thumb = Bitmap.createBitmap(mIconWidth,mIconHeight, c);final Canvas canvas = mCanvas;canvas.setBitmap(thumb);// Copy the old bounds to restore them later// If we were to do oldBounds = icon.getBounds(),// the call to setBounds() that follows would// change the same instance and we would lose the// old boundsmOldBounds.set(icon.getBounds());final int x = (mIconWidth - width) / 2;final int y = (mIconHeight - height) / 2;icon.setBounds(x, y, x + width, y + height);icon.draw(canvas);icon.setBounds(mOldBounds);icon = new BitmapDrawable(getResources(), thumb);} else if (iconWidth < width && iconHeight < height) {final Bitmap.Config c = Bitmap.Config.ARGB_8888;final Bitmap thumb = Bitmap.createBitmap(mIconWidth,mIconHeight, c);final Canvas canvas = mCanvas;canvas.setBitmap(thumb);mOldBounds.set(icon.getBounds());final int x = (width - iconWidth) / 2;final int y = (height - iconHeight) / 2;icon.setBounds(x, y, x + iconWidth, y + iconHeight);icon.draw(canvas);icon.setBounds(mOldBounds);icon = new BitmapDrawable(getResources(), thumb);}}return icon;}
- Drawble高效创建缩略图方法
- 创建缩略图
- 使用JS创建table的高效方法
- 自定义Drawble
- Android Drawble
- 转贴:创建缩略图
- ASP.NET创建缩略图
- GDI+ 创建缩略图
- ios 创建图像缩略图
- 创建图片的缩略图
- php 创建图片缩略图
- ios 创建图像缩略图
- C# 创建缩略图
- php 创建缩略图函数
- php创建缩略图
- PHP创建缩略图
- 为图片创建缩略图
- PHP创建缩略图
- 一些WIN32API在C#中的运用
- 五大常用算法之五:分支限界法
- Hibernate中map的研究之:一对多及节点中的inverse的研究(一)
- 64位Windows操作系统手工为驱动程序添加数字签名(精华学习)
- 算法策略的总结
- Drawble高效创建缩略图方法
- Abstract Factory 抽象工厂模式
- cocos2d-x mac,模板安装
- 什么是北斗导航系统
- 监控设备问题
- warning C4251 needs to have dll-interface解决办法
- mysql学习的笔记A
- firefox的选择区域html的内部生成
- Builder模式