欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android开发小知识1

程序员文章站 2024-03-16 21:12:22
...

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.   

相关标签: Android 游戏