1.图片加载方法,方便用户加载图片
?
- /***?
- ?*?加载本地图片?
- ?*??
- [email protected]?
- ?*????????????:主运行函数实例?
- [email protected]?
- ?*????????????:图片地址,一般指向R下的drawable目录?
- [email protected]?
- ?*/??
- public?final?Bitmap?CreatImage(Context?context,?int?bitAdress)?{??
- ????Bitmap?bitmaptemp?=?null;??
- ????bitmaptemp?=?BitmapFactory.decodeResource(context.getResources(),??
- ????????????bitAdress);??
- ????return?bitmaptemp;??
- }??
/*** * 加载本地图片 * * @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列,方便用户使用
?
- /***?
- ?*?图片分割?
- ?*??
- [email protected]?
- ?*????????????:画布?
- [email protected]?
- ?*????????????:画笔?
- [email protected]?
- ?*????????????:图片?
- [email protected]?
- ?*????????????:X轴起点坐标?
- [email protected]?
- ?*????????????:Y轴起点坐标?
- [email protected]?
- ?*????????????:单一图片的宽度?
- [email protected]?
- ?*????????????:单一图片的高度?
- [email protected]?
- ?*????????????:第几列?
- [email protected]?
- ?*????????????:第几行?
- ?*/??
- 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();??
- }??
/*** * 图片分割 * * @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.图片缩放,对当前图片进行缩放处理
?
- /***?
- ?*?图片的缩放方法?
- ?*??
- [email protected]?
- ?*????????????:源图片资源?
- [email protected]?
- ?*????????????:缩放后宽度?
- [email protected]?
- ?*????????????:缩放后高度?
- [email protected]?
- ?*/??
- 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;??
- }??
/*** * 图片的缩放方法 * * @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;}
?4.绘制带有边框的文字,一般在游戏中起文字的美化作用
?
- /***?
- ?*?绘制带有边框的文字?
- ?*??
- [email protected]?
- ?*????????????:绘制内容?
- [email protected]?
- ?*????????????:画布?
- [email protected]?
- ?*????????????:画笔?
- [email protected]?
- ?*????????????::X轴起始坐标?
- [email protected]?
- ?*????????????:Y轴的起始坐标?
- [email protected]?
- ?*????????????:前景色?
- [email protected]?
- ?*????????????:背景色?
- ?*/??
- public?void?drawText(String?strMsg,?Canvas?g,?Paint?paint,?int?setx,??
- ????????int?sety,?int?fg,?int?bg)?{??
- ????paint.setColor(bg);??
- ????g.drawText(strMsg,?setx?+?1,?sety,?paint);??
- ????g.drawText(strMsg,?setx,?sety?-?1,?paint);??
- ????g.drawText(strMsg,?setx,?sety?+?1,?paint);??
- ????g.drawText(strMsg,?setx?-?1,?sety,?paint);??
- ????paint.setColor(fg);??
- ????g.drawText(strMsg,?setx,?sety,?paint);??
- ????g.restore();??
- }??
/*** * 绘制带有边框的文字 * * @param strMsg * :绘制内容 * @param g * :画布 * @param paint * :画笔 * @param setx * ::X轴起始坐标 * @param sety * :Y轴的起始坐标 * @param fg * :前景色 * @param bg * :背景色 */public void drawText(String strMsg, Canvas g, Paint paint, int setx, int sety, int fg, int bg) { paint.setColor(bg); g.drawText(strMsg, setx + 1, sety, paint); g.drawText(strMsg, setx, sety - 1, paint); g.drawText(strMsg, setx, sety + 1, paint); g.drawText(strMsg, setx - 1, sety, paint); paint.setColor(fg); g.drawText(strMsg, setx, sety, paint); g.restore();}
?5.图片分割的最简便方式
?
- public?final?Bitmap?cuteImage(Bitmap?_imgBit,?int?_startX,?int?width,??
- ??
- int?_startY,?int?height)?{??
- ??
- ????Bitmap?tempMap?=?null;??
- ??
- ????tempMap?=?Bitmap.createBitmap(_imgBit,?_startX,?_startY,?width,?height);??
- ??
- ????return?tempMap;??
- ??
- }??
public final Bitmap cuteImage(Bitmap _imgBit, int _startX, int width,int _startY, int height) { Bitmap tempMap = null; tempMap = Bitmap.createBitmap(_imgBit, _startX, _startY, width, height); return tempMap;}
?6.字符串分行显示
?
- public?String[]?StringFormat(String?text,?int?maxWidth,?int?fontSize)?{??
- ??
- ????String[]?result?=?null;??
- ??
- ????Vector<String>?tempR?=?new?Vector<String>();??
- ??
- ????int?lines?=?0;??
- ??
- ????int?len?=?text.length();??
- ??
- ????int?index0?=?0;??
- ??
- ????int?index1?=?0;??
- ??
- ????boolean?wrap;??
- ??
- ????while?(true)?{??
- ??
- ????????int?widthes?=?0;??
- ??
- ????????wrap?=?false;??
- ??
- ????????for?(index0?=?index1;?index1?<?len;?index1++)?{??
- ??
- ????????????if?(text.charAt(index1)?==?'\n')?{??
- ??
- ????????????????index1++;??
- ??
- ????????????????wrap?=?true;??
- ??
- ????????????????break;??
- ??
- ????????????}??
- ??
- ????????????widthes?=?fontSize?+?widthes;??
- ??
- ????????????if?(widthes?>?maxWidth)?{??
- ??
- ????????????????break;??
- ??
- ????????????}??
- ??
- ????????}??
- ??
- ????????lines++;??
- ??
- ????????if?(wrap)?{??
- ??
- ????????????tempR.addElement(text.substring(index0,?index1?-?1));??
- ??
- ????????}?else?{??
- ??
- ????????????tempR.addElement(text.substring(index0,?index1));??
- ??
- ????????}??
- ??
- ????????if?(index1?>=?len)?{??
- ??
- ????????????break;??
- ??
- ????????}??
- ??
- ????}??
- ??
- ????result?=?new?String[lines];??
- ??
- ????tempR.copyInto(result);??
- ??
- ????return?result;??
- ??
- }?