分享

Android的一些工具方法 - 开发资源区 - 中国移动开发者社区论坛 OMS开发,Android开发,symbian开发,j2me开发,windows phone开发,手机软件开发,手机游戏开发,主题制作

 shaobin0604@163.com 2010-05-28
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;

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约