WEB开发网
开发学院手机开发Android 开发 Android 手机应用的开发经验—QR生成器 阅读

Android 手机应用的开发经验—QR生成器

 2010-08-21 03:25:00 来源:WEB开发网   
核心提示:Paint代之,当然用法也稍有不同,Android 手机应用的开发经验—QR生成器(9),单独说画图的问题,是很简单的,然后将画板的内容Post提交出去,应该是提交给SurfaceView,也有很多方法实现,可是涉及到绘图后的图片保存问题
Paint代之,当然用法也稍有不同。

单独说画图的问题,是很简单的,也有很多方法实现,可是涉及到绘图后的图片保存问题,画图问题貌似复杂了。绘制QR图片,我用到了两种方法,这里都列出来,让大家看看。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SurfaceView和Canvas绘图

SurfaceView重写onDraw()方法是没有用的。SurfaceView中画图的关键对象Canvas对象必须要从一个SurfaceHolder对象获取:

Canvas canvas = holder.lockCanvas();

拿到canvas之后就可以进行绘画了。

绘画完毕之后还要做的一件事就是提交绘画

holder.unlockCanvasAndPost();

从方法的命名可以看出,这个方法将原来锁定的(lockCanvas())的画板解除锁定,然后将画板的内容Post提交出去,应该是提交给SurfaceView,然后显示出来。

Java代码

//在SurfaceView上绘制QRCode条形码

private void drawQRCode(boolean[][] bRect, int colorFill)

{

/* test Canvas*/

int intPadding = 20;

//绘图前先锁定Surfaceholder

Canvas mCanvas01 = mSurfaceHolder01.lockCanvas();

//设置画图绘图颜色

mCanvas01.drawColor(getResources().getColor(R.drawable.white));

//创建画笔

Paint mPaint01 = new Paint();

//设置画笔颜色和模式

mPaint01.setStyle(Paint.Style.FILL);

mPaint01.setColor(colorFill);

mPaint01.setStrokeWidth(1.0F);

//逐一加载boolean数组

for (int i=0;i
< p>

{

for (int j=0;j
< p>

{

if (bRect[j][i])

{

//绘出条形码方块

mCanvas01.drawRect

(

new Rect

(

intPadding+j*3+2,//左上边x

intPadding+i*3+2,//左上边y

intPadding+j*3+2+3,//右下边x

intPadding+i*3+2+3//右下边y

), mPaint01

上一页  4 5 6 7 8 9 10 11 12 13  下一页

Tags:Android 手机 应用

编辑录入:coldstar [复制链接] [打 印]
赞助商链接