android开发小知识1
程序员文章站
2024-03-16 21:12:22
...
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;
- }
/***
* 加载本地图片
*
* @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();
- }
/***
* 图片分割
*
* @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;
- }
/***
* 图片的缩放方法
*
* @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();
- }
/***
* 绘制带有边框的文字
*
* @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;
-
}
推荐阅读
-
android开发小知识1
-
android游戏开发笔记(1)——画图及输入响应(一只被玩弄的老鼠) 博客分类: android 游戏开发anroid按键响应画图
-
Android开发小技巧1 博客分类: 技术总结 Android开发小技巧
-
Java Web十条开发实用小知识
-
【达内课程】Android开发中服务端需要了解的知识(1)
-
Java Web十条开发实用小知识
-
android:xmlns的作用以及自定义 博客分类: android相关 小知识 小知识androidxmlblog
-
android:xmlns的作用以及自定义 博客分类: android相关 小知识 小知识androidxmlblog
-
你值得拥有的Android Studio开发小技巧
-
Android百度地图应用开发基础知识