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; }
4.绘制带有边框的文字,一般在游戏中起文字的美化作用
/*** * 绘制带有边框的文字 * * @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; }
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; }