android开发小常识1

android开发小知识1

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

 

Java代码
  1. /***  
  2.  * 加载本地图片  
  3.  *   
  4.  * @param context  
  5.  *            :主运行函数实例  
  6.  * @param bitAdress  
  7.  *            :图片地址,一般指向R下的drawable目录  
  8.  * @return  
  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.  * @param g  
  5.  *            :画布  
  6.  * @param paint  
  7.  *            :画笔  
  8.  * @param imgBit  
  9.  *            :图片  
  10.  * @param x  
  11.  *            :X轴起点坐标  
  12.  * @param y  
  13.  *            :Y轴起点坐标  
  14.  * @param w  
  15.  *            :单一图片的宽度  
  16.  * @param h  
  17.  *            :单一图片的高度  
  18.  * @param line  
  19.  *            :第几列  
  20.  * @param row  
  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.  * @param bgimage  
  5.  *            :源图片资源  
  6.  * @param newWidth  
  7.  *            :缩放后宽度  
  8.  * @param newHeight  
  9.  *            :缩放后高度  
  10.  * @return  
  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.  * @param strMsg  
  5.  *            :绘制内容  
  6.  * @param g  
  7.  *            :画布  
  8.  * @param paint  
  9.  *            :画笔  
  10.  * @param setx  
  11.  *            ::X轴起始坐标  
  12.  * @param sety  
  13.  *            :Y轴的起始坐标  
  14.  * @param fg  
  15.  *            :前景色  
  16.  * @param bg  
  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.