資源描述:
《android開發(fā)二維碼掃描》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Android是什么?Android是一個(gè)運(yùn)行在嵌入式Linux操作系統(tǒng)上的設(shè)備上的、可靈活部署、可升級的、完全開源代碼的、代碼符合ApacheLicense、free-software和opensourcelicense許可完全商業(yè)友好的移動(dòng)系統(tǒng)平臺。Android平臺由Google等公司發(fā)起建立的開發(fā)性廠商聯(lián)盟組織OpenHandsetAlliance共同開發(fā)。Android平臺的目標(biāo)是以更低的產(chǎn)品研發(fā)、設(shè)備部署和服務(wù)套件成本來開發(fā)具有良好界面的手持設(shè)備程序和各種移動(dòng)設(shè)備中間件程序。Android的特點(diǎn)無需任何許可就可以發(fā)布一個(gè)應(yīng)用程序Android平臺所有的API全部透明。無任
2、何隱藏和附加權(quán)限即可查看所有API可自由的組合、修改、擴(kuò)展任何Android系統(tǒng)組件Android的資源系統(tǒng)以二維碼掃描為例說明:Android的權(quán)限控制在AndroidManifest.xml中描述一個(gè)app的權(quán)限例如:Activity的生命周期Activity簡介在Android中規(guī)定所有的頁面元素都必須以Activity形式展現(xiàn)。Activity類中必須實(shí)現(xiàn)onCreate方法(此方法就是第一次程序界面展示給用戶的初始化方法),必須在所有繼承父類的接口處調(diào)用super類方法.setContentView()方法:Android中把界面布局元素的展示,存放在layout文件夾中的
3、對應(yīng)的xml文檔中。此方法,根據(jù)自動(dòng)生成的R對象中緩存的xml文檔類裝載入Activity.二維碼掃描演示程序詳解一、xml布局TextView用來存放解碼后顯示的信息Surface整個(gè)底層界面用來顯示照相機(jī)拍攝到的圖像FrontView用來把顯示到的圖像周圍都涂成半透明的白色,中間的空白區(qū)域用來掃描二維碼ImageView用來顯示掃描二維碼成功后截取到的圖像TextView用來簡單介紹本軟件可以掃描的范圍Button用來關(guān)閉軟件和重新掃描二、Activity程序重要部分分析1、FrontView.javapublicvoidinit(){paint=newPaint();paint
4、.setColor(Color.WHITE);paint.setAlpha(0xff/2);}protectedvoidonDraw(Canvascanvas){intx;inty;intm=480;intn=350;x=canvas.getWidth();y=canvas.getHeight();canvas.drawRect(0,0,x,(y-n)/2,paint);canvas.drawRect(0,(y-n)/2,(x-m)/2,(y-n)/2+n,paint);canvas.drawRect((x-m)/2+m,(y-n)/2,x,(y-n)/2+n,paint);canv
5、as.drawRect(0,(y-n)/2+n,x,y,paint);初始化畫筆,設(shè)置畫筆的顏色,并把所繪的地區(qū)全部繪為(0xff/2)半透明。得到canvas畫布的長和寬(x,y)繪制四個(gè)周邊矩形,所繪制的矩形都是半透明的有顏色,只剩下中間一塊亮白的地方paint.setColor(Color.RED);canvas.drawLine((x-m)/2+10,(y-n)/2+10,(x-m)/2+50,(y-n)/2+10,paint);canvas.drawLine((x-m)/2+10,(y-n)/2+10,(x-m)/2+10,(y-n)/2+50,paint);canvas.
6、drawLine((x-m)/2+m-10,(y-n)/2+10,(x-m)/2+m-50,(y-n)/2+10,paint);canvas.drawLine((x-m)/2+m-10,(y-n)/2+10,(x-m)/2+m-10,(y-n)/2+50,paint);canvas.drawLine((x-m)/2+10,(y-n)/2+n-10,(x-m)/2+10,(y-n)/2+n-50,paint);canvas.drawLine((x-m)/2+10,(y-n)/2+n-10,(x-m)/2+50,(y-n)/2+n-10,paint);canvas.drawLine((x
7、-m)/2+m-10,(y-n)/2+n-10,(x-m)/2+m-10,(y-n)/2+n-50,paint);canvas.drawLine((x-m)/2+m-10,(y-n)/2+n-10,(x-m)/2+m-50,(y-n)/2+n-10,paint);canvas.drawLine(210,400,270,400,paint);canvas.drawLine(240,370,240,430,paint);}}設(shè)置畫筆的顏色在掃描區(qū)四個(gè)角繪制互相