当前位置: 代码迷 >> Android >> android开发中图片优化步骤
  详细解决方案

android开发中图片优化步骤

热度:89   发布时间:2016-05-01 20:40:44.0
android开发中图片优化方法

1.图片加载方法,方便用户加载图片
? ?? ???/***
? ?? ?? ?* 加载本地图片
? ?? ?? ?* @param context:主运行函数实例
? ?? ?? ?* @param bitAdress:图片地址,一般指向R下的drawable目录
? ?? ?? ?* @return
? ?? ?? ?*/
? ?? ???public final Bitmap CreatImage(Context context, int bitAdress) {
? ?? ?? ?? ?? ? Bitmap bitmaptemp = null;
? ?? ?? ?? ?? ? bitmaptemp = BitmapFactory.decodeResource(context.getResources(),
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???bitAdress);
? ?? ?? ?? ?? ? return bitmaptemp;
? ?? ???}
2.图片平均分割方法,将大图平均分割为N行N列,方便用户使用

? ?? ???/***
? ?? ?? ?* 图片分割
? ?? ?? ?*?
? ?? ?? ?* @param g
? ?? ?? ?*? ?? ?? ?? ?:画布
? ?? ?? ?* @param paint
? ?? ?? ?*? ?? ?? ?? ?:画笔
? ?? ?? ?* @param imgBit
? ?? ?? ?*? ?? ?? ?? ?:图片
? ?? ?? ?* @param x
? ?? ?? ?*? ?? ?? ?? ?:X轴起点坐标
? ?? ?? ?* @param y
? ?? ?? ?*? ?? ?? ?? ?:Y轴起点坐标
? ?? ?? ?* @param w
? ?? ?? ?*? ?? ?? ?? ?:单一图片的宽度
? ?? ?? ?* @param h
? ?? ?? ?*? ?? ?? ?? ?:单一图片的高度
? ?? ?? ?* @param line
? ?? ?? ?*? ?? ?? ?? ?:第几列
? ?? ?? ?* @param row
? ?? ?? ?*? ?? ?? ?? ?:第几行
? ?? ?? ?*/
? ?? ???public final void cuteImage(Canvas g, Paint paint, Bitmap imgBit, int x,
? ?? ?? ?? ?? ?? ?? ?? ?int y, int w, int h, int line, int row) {
? ?? ?? ?? ?? ? g.clipRect(x, y, x + w, h + y);
? ?? ?? ?? ?? ? g.drawBitmap(imgBit, x - line * w, y - row * h, paint);
? ?? ?? ?? ?? ? g.restore();
? ?? ???}

3.图片缩放,对当前图片进行缩放处理
? ?? ???/***
? ?? ?? ?* 图片的缩放方法
? ?? ?? ?*?
? ?? ?? ?* @param bgimage
? ?? ?? ?*? ?? ?? ?? ?:源图片资源
? ?? ?? ?* @param newWidth
? ?? ?? ?*? ?? ?? ?? ?:缩放后宽度
? ?? ?? ?* @param newHeight
? ?? ?? ?*? ?? ?? ?? ?:缩放后高度
? ?? ?? ?* @return
? ?? ?? ?*/
? ?? ???public Bitmap zoomImage(Bitmap bgimage, int newWidth, int newHeight) {
? ?? ?? ?? ?? ? // 获取这个图片的宽和高
? ?? ?? ?? ?? ? int width = bgimage.getWidth();
? ?? ?? ?? ?? ? int height = bgimage.getHeight();
? ?? ?? ?? ?? ? // 创建操作图片用的matrix对象
? ?? ?? ?? ?? ? Matrix matrix = new Matrix();
? ?? ?? ?? ?? ? // 计算缩放率,新尺寸除原始尺寸
? ?? ?? ?? ?? ? float scaleWidth = ((float) newWidth) / width;
? ?? ?? ?? ?? ? float scaleHeight = ((float) newHeight) / height;
? ?? ?? ?? ?? ? // 缩放图片动作
? ?? ?? ?? ?? ? matrix.postScale(scaleWidth, scaleHeight);
? ?? ?? ?? ?? ? Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, width, height,
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???matrix, true);
? ?? ?? ?? ?? ? return bitmap;
? ?? ???}

  相关解决方案