当前位置: 代码迷 >> Android >> android开发小常识1
  详细解决方案

android开发小常识1

热度:33   发布时间:2016-05-01 16:19:19.0
android开发小知识1

1.图片加载方法,方便用户加载图片

?

Java代码
  1. /***?
  2. ?*?加载本地图片?
  3. ?*??
  4. [email protected]?
  5. ?*????????????:主运行函数实例?
  6. [email protected]?
  7. ?*????????????:图片地址,一般指向R下的drawable目录?
  8. [email protected]?
  9. ?*/??
  10. public?final?Bitmap?CreatImage(Context?context,?int?bitAdress)?{??
  11. ????Bitmap?bitmaptemp?=?null;??
  12. ????bitmaptemp?=?BitmapFactory.decodeResource(context.getResources(),??
  13. ????????????bitAdress);??
  14. ????return?bitmaptemp;??
  15. }??
/*** * 加载本地图片 *  * @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列,方便用户使用

?

Java代码
  1. /***?
  2. ?*?图片分割?
  3. ?*??
  4. [email protected]?
  5. ?*????????????:画布?
  6. [email protected]?
  7. ?*????????????:画笔?
  8. [email protected]?
  9. ?*????????????:图片?
  10. [email protected]?
  11. ?*????????????:X轴起点坐标?
  12. [email protected]?
  13. ?*????????????:Y轴起点坐标?
  14. [email protected]?
  15. ?*????????????:单一图片的宽度?
  16. [email protected]?
  17. ?*????????????:单一图片的高度?
  18. [email protected]?
  19. ?*????????????:第几列?
  20. [email protected]?
  21. ?*????????????:第几行?
  22. ?*/??
  23. public?final?void?cuteImage(Canvas?g,?Paint?paint,?Bitmap?imgBit,?int?x,??
  24. ????????int?y,?int?w,?int?h,?int?line,?int?row)?{??
  25. ????g.clipRect(x,?y,?x?+?w,?h?+?y);??
  26. ????g.drawBitmap(imgBit,?x?-?line?*?w,?y?-?row?*?h,?paint);??
  27. ????g.restore();??
  28. }??
/*** * 图片分割 *  * @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.图片缩放,对当前图片进行缩放处理

?

Java代码
  1. /***?
  2. ?*?图片的缩放方法?
  3. ?*??
  4. [email protected]?
  5. ?*????????????:源图片资源?
  6. [email protected]?
  7. ?*????????????:缩放后宽度?
  8. [email protected]?
  9. ?*????????????:缩放后高度?
  10. [email protected]?
  11. ?*/??
  12. public?Bitmap?zoomImage(Bitmap?bgimage,?int?newWidth,?int?newHeight)?{??
  13. ????//?获取这个图片的宽和高??
  14. ????int?width?=?bgimage.getWidth();??
  15. ????int?height?=?bgimage.getHeight();??
  16. ????//?创建操作图片用的matrix对象??
  17. ????Matrix?matrix?=?new?Matrix();??
  18. ????//?计算缩放率,新尺寸除原始尺寸??
  19. ????float?scaleWidth?=?((float)?newWidth)?/?width;??
  20. ????float?scaleHeight?=?((float)?newHeight)?/?height;??
  21. ????//?缩放图片动作??
  22. ????matrix.postScale(scaleWidth,?scaleHeight);??
  23. ????Bitmap?bitmap?=?Bitmap.createBitmap(bgimage,?0,?0,?width,?height,??
  24. ????????????matrix,?true);??
  25. ????return?bitmap;??
  26. }??
/*** * 图片的缩放方法 *  * @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.绘制带有边框的文字,一般在游戏中起文字的美化作用

?

Java代码
  1. /***?
  2. ?*?绘制带有边框的文字?
  3. ?*??
  4. [email protected]?
  5. ?*????????????:绘制内容?
  6. [email protected]?
  7. ?*????????????:画布?
  8. [email protected]?
  9. ?*????????????:画笔?
  10. [email protected]?
  11. ?*????????????::X轴起始坐标?
  12. [email protected]?
  13. ?*????????????:Y轴的起始坐标?
  14. [email protected]?
  15. ?*????????????:前景色?
  16. [email protected]?
  17. ?*????????????:背景色?
  18. ?*/??
  19. public?void?drawText(String?strMsg,?Canvas?g,?Paint?paint,?int?setx,??
  20. ????????int?sety,?int?fg,?int?bg)?{??
  21. ????paint.setColor(bg);??
  22. ????g.drawText(strMsg,?setx?+?1,?sety,?paint);??
  23. ????g.drawText(strMsg,?setx,?sety?-?1,?paint);??
  24. ????g.drawText(strMsg,?setx,?sety?+?1,?paint);??
  25. ????g.drawText(strMsg,?setx?-?1,?sety,?paint);??
  26. ????paint.setColor(fg);??
  27. ????g.drawText(strMsg,?setx,?sety,?paint);??
  28. ????g.restore();??
  29. }??
/*** * 绘制带有边框的文字 *  * @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.图片分割的最简便方式

?

Java代码
  1. public?final?Bitmap?cuteImage(Bitmap?_imgBit,?int?_startX,?int?width,??
  2. ??
  3. int?_startY,?int?height)?{??
  4. ??
  5. ????Bitmap?tempMap?=?null;??
  6. ??
  7. ????tempMap?=?Bitmap.createBitmap(_imgBit,?_startX,?_startY,?width,?height);??
  8. ??
  9. ????return?tempMap;??
  10. ??
  11. }??
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.字符串分行显示

?

Java代码
  1. public?String[]?StringFormat(String?text,?int?maxWidth,?int?fontSize)?{??
  2. ??
  3. ????String[]?result?=?null;??
  4. ??
  5. ????Vector<String>?tempR?=?new?Vector<String>();??
  6. ??
  7. ????int?lines?=?0;??
  8. ??
  9. ????int?len?=?text.length();??
  10. ??
  11. ????int?index0?=?0;??
  12. ??
  13. ????int?index1?=?0;??
  14. ??
  15. ????boolean?wrap;??
  16. ??
  17. ????while?(true)?{??
  18. ??
  19. ????????int?widthes?=?0;??
  20. ??
  21. ????????wrap?=?false;??
  22. ??
  23. ????????for?(index0?=?index1;?index1?<?len;?index1++)?{??
  24. ??
  25. ????????????if?(text.charAt(index1)?==?'\n')?{??
  26. ??
  27. ????????????????index1++;??
  28. ??
  29. ????????????????wrap?=?true;??
  30. ??
  31. ????????????????break;??
  32. ??
  33. ????????????}??
  34. ??
  35. ????????????widthes?=?fontSize?+?widthes;??
  36. ??
  37. ????????????if?(widthes?>?maxWidth)?{??
  38. ??
  39. ????????????????break;??
  40. ??
  41. ????????????}??
  42. ??
  43. ????????}??
  44. ??
  45. ????????lines++;??
  46. ??
  47. ????????if?(wrap)?{??
  48. ??
  49. ????????????tempR.addElement(text.substring(index0,?index1?-?1));??
  50. ??
  51. ????????}?else?{??
  52. ??
  53. ????????????tempR.addElement(text.substring(index0,?index1));??
  54. ??
  55. ????????}??
  56. ??
  57. ????????if?(index1?>=?len)?{??
  58. ??
  59. ????????????break;??
  60. ??
  61. ????????}??
  62. ??
  63. ????}??
  64. ??
  65. ????result?=?new?String[lines];??
  66. ??
  67. ????tempR.copyInto(result);??
  68. ??
  69. ????return?result;??
  70. ??
  71. }?
  相关解决方案