黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

豆瓣圖書查詢升級版“掃掃圖書”

系統(tǒng) 2340 0

原文出自:方杰| http://fangjie.sinaapp.com/?p=88 ? 轉(zhuǎn)載請注明出處

github: https://github.com/JayFang1993/BookScaning

首先能夠看看效果展示: http://fangjie.sinaapp.com/?page_id=54

?

MainActivity.java是主界面的Activity ;BookView.java是顯示圖書基本信息的界面;CaptureActivity.java是掃描鏡頭界面;ReviewActivity是筆記的列表界面;ReviewContent.java是筆記的具體界面;BookInfo是book的實(shí)體類(在原來的基礎(chǔ)上添加非常多信息);Review是筆記的實(shí)體類。

基本的技術(shù)就是Zxing開源庫的使用,簡單的網(wǎng)絡(luò)通信,數(shù)據(jù)解析及UI更新的要點(diǎn)。原來的Demo是直接調(diào)用Zxing的apk來使用的,這樣就必需要求用戶必須安裝Zxing的apk,這種應(yīng)用肯定不行,所以我就把Zxing的一些包整到自己的項(xiàng)目中。

一.Zxing的使用:
首先將Zxing的核心包倒到自己的程序中, 在把Zxing官方的android demo包中去掉不用的,精簡之后如我上面的project文件一樣。這幾個(gè)包大致做的是有關(guān)Camera和解析的工作,我們僅僅需略微修改CaptureActivity.java和CaptureActivityHandler.java文件。CaptureActivity.java是一個(gè)Activity的子類,就是掃描開啟攝像頭的界面。事實(shí)上真正對掃描界面處理的程序在CaptureActivityHandler.java中。我們須要的是在掃描得到ISBN值之后將其返回到MainActivity中。

MainActivity.java

      //開啟掃描button
btn.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View view) {
		Intent intent=new Intent(MainActivity.this,CaptureActivity.class);
		startActivityForResult(intent,100);
	}
});
    

CaptureActivityHandler.java

      public void handleMessage(Message message) {
	switch (message.what) {
		case R.id.auto_focus:
			if (state == State.PREVIEW) {
				CameraManager.get().requestAutoFocus(this, R.id.auto_focus);
			}
			break;
		case R.id.restart_preview:
			Log.i("OUTPUT", "Got restart preview message");
			restartPreviewAndDecode();
			break;
		case R.id.decode_succeeded://掃描成功
			Log.i("OUTPUT", "Got decode succeeded message");
			state = State.SUCCESS;
			Bundle bundle = message.getData();
			Bitmap barcode = bundle == null ? null :
			(Bitmap) bundle.getParcelable(DecodeThread.BARCODE_BITMAP);
			String str_result=((Result) message.obj).getText();
			activity.handleDecode((Result) message.obj, barcode);

			Intent intent=new Intent(activity,MainActivity.class);
			intent.putExtra("result", str_result);
			activity.setResult(100,intent);
			activity.finish();
			break;
		case R.id.decode_failed://掃描失敗
			Log.i("OUTPUT", "Got return scan result message");
			state = State.PREVIEW;
			CameraManager.get().requestPreviewFrame(decodeThread.getHandler(), R.id.decode);
			break;
		case R.id.return_scan_result://退出掃描
			Log.i("OUTPUT", "Got return scan result message");
			Intent intent2=new Intent(activity,MainActivity.class);
			activity.startActivity(intent2);
			break;
		}
}

    

MainActivity.java

      //獲取掃描之后的ISBN碼,并在豆瓣上搜索圖書信息
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
	super.onActivityResult(requestCode, resultCode, data);
	if(((requestCode==100)||(resultCode==Activity.RESULT_OK))&&data!=null)
	{
		Log.i("OUTPUT","NGYUFU");
		progressDialog=new ProgressDialog(this);
		progressDialog.setMessage("請稍候,正在讀取信息...");
		progressDialog.show();
		String urlstr="https://api.douban.com/v2/book/isbn/"+data.getExtras().getString("result");
		//掃到ISBN后,啟動下載線程下載圖書信息
		new DownloadThread(urlstr).start();
	}
}

    

返回ISBN值之后,剩下的就是去豆瓣API上獲取數(shù)據(jù),然后解析,更新到UI上了。這些東西在之間的那篇博客已經(jīng)講過了,不一樣的就是添加了Book的屬性,添加了一個(gè)筆記顯示列表和筆記詳細(xì)內(nèi)容的界面,這些東西會了網(wǎng)絡(luò)通信和數(shù)據(jù)解析就非常easy了,不多講了。
二:豆瓣圖書API: http://developers.douban.com/wiki/?title=book_v2
我用的是以下的兩個(gè),詳細(xì)的數(shù)據(jù)屬性自己去看API文檔。這里由于豆瓣書評的數(shù)據(jù)必需要授權(quán)之后才干獲取完整數(shù)據(jù),沒有授權(quán)的用戶僅僅能獲取概要信息,為了簡單,我就沒有做OAuth認(rèn)證部分,直接選擇了筆記信息,這個(gè)數(shù)據(jù)不需要授權(quán)。

依據(jù)isbn獲取圖書信息 ? ? ? ?GET ? ? ? ?/v2/book/isbn/:name

獲取某本圖書的全部筆記 ? ? ? GET ? ? /v2/book/:id/annotations

? 歡迎各位關(guān)注我的個(gè)人網(wǎng)站: http://fangjie .sinaapp.com/ ?

豆瓣圖書查詢升級版“掃掃圖書”


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論