Android 手机应用的开发经验—QR生成器
2010-08-21 03:25:00 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄧ粯銇勯幒瀣仾闁靛洤瀚伴獮鍥敍濮f寧鎹囬弻鐔哥瑹閸喖顬堝銈庡亝缁挸鐣烽崡鐐嶆棃鍩€椤掑嫮宓佸┑鐘插绾句粙鏌涚仦鎹愬闁逞屽墰閹虫捇锝炲┑瀣╅柍杞拌兌閻ゅ懐绱撴担鍓插剱妞ゆ垶鐟╁畷銉р偓锝庡枟閻撴洘銇勯幇闈涗簼缂佽埖姘ㄧ槐鎾诲礃閳哄倻顦板┑顔硷工椤嘲鐣烽幒鎴旀瀻闁规惌鍘借ⅵ濠电姷鏁告慨顓㈠磻閹剧粯鈷戞い鎺嗗亾缂佸鏁婚獮鍡涙倷閸濆嫮顔愬┑鐑囩秵閸撴瑦淇婇懖鈺冪<闁归偊鍙庡▓婊堟煛鐏炵硶鍋撻幇浣告倯闁硅偐琛ラ埀顒冨皺閺佹牕鈹戦悙鏉戠仸闁圭ǹ鎽滅划鏃堟偨缁嬭锕傛煕閺囥劌鐏犻柛鎰ㄥ亾婵$偑鍊栭崝锕€顭块埀顒佺箾瀹€濠侀偗婵﹨娅g槐鎺懳熺拠鑼舵暱闂備胶枪濞寸兘寮拠宸殨濠电姵纰嶉弲鎻掝熆鐠虹尨宸ョ€规挸妫濆铏圭磼濡搫顫嶇紓浣风劍閹稿啿鐣烽幋锕€绠婚悹鍥у级瀹撳秴顪冮妶鍡樺鞍缂佸鍨剁粋宥夋倷椤掍礁寮垮┑鈽嗗灣閸樠勭妤e啯鍊垫慨妯煎亾鐎氾拷

);
}
}
}
//解锁并绘图
mSurfaceHolder01.unlockCanvasAndPost(mCanvas01);
}
//在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
);
}
}
}
//解锁并绘图
mSurfaceHolder01.unlockCanvasAndPost(mCanvas01);
}
代码片段中用到的boolean数组就是从AndroidQREncode()函数中得到的。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Canvas和Bitmap绘图
Canvas可以用来显示位图,可是Canvas画图本身位图没有关系,不过可以把Canvas和Bitmap联系起来,这样图像保存时候就大有用途了。你还记得这两行代码吗:
canvasBmp = Bitmap.createBitmap(w, h, Config.ARGB_8888);//创建可改变的Bitmat对象
Canvas cn = new Canvas(canvasBmp);//创建Canvas对象
更多精彩
赞助商链接