亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統 1911 0

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

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的實體類(在原來的基礎上添加非常多信息);Review是筆記的實體類。

基本的技術就是Zxing開源庫的使用,簡單的網絡通信,數據解析及UI更新的要點。原來的Demo是直接調用Zxing的apk來使用的,這樣就必需要求用戶必須安裝Zxing的apk,這種應用肯定不行,所以我就把Zxing的一些包整到自己的項目中。

一.Zxing的使用:
首先將Zxing的核心包倒到自己的程序中, 在把Zxing官方的android demo包中去掉不用的,精簡之后如我上面的project文件一樣。這幾個包大致做的是有關Camera和解析的工作,我們僅僅需略微修改CaptureActivity.java和CaptureActivityHandler.java文件。CaptureActivity.java是一個Activity的子類,就是掃描開啟攝像頭的界面。事實上真正對掃描界面處理的程序在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上獲取數據,然后解析,更新到UI上了。這些東西在之間的那篇博客已經講過了,不一樣的就是添加了Book的屬性,添加了一個筆記顯示列表和筆記詳細內容的界面,這些東西會了網絡通信和數據解析就非常easy了,不多講了。
二:豆瓣圖書API: http://developers.douban.com/wiki/?title=book_v2
我用的是以下的兩個,詳細的數據屬性自己去看API文檔。這里由于豆瓣書評的數據必需要授權之后才干獲取完整數據,沒有授權的用戶僅僅能獲取概要信息,為了簡單,我就沒有做OAuth認證部分,直接選擇了筆記信息,這個數據不需要授權。

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

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

? 歡迎各位關注我的個人網站: http://fangjie .sinaapp.com/ ?

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色综合久久天天综线观看 | 成人 亚洲 成人影院 | 很黄的视频网站 | 欧美性视频一区二区三区 | 欧美 日韩 中字 国产 | 欧美日韩一区二区在线观看 | 99久久精品国产片久人 | 成人国产在线视频 | 色婷婷综合在线视频最新 | 免费亚洲成人 | 99国产精品高清一区二区二区 | 在线观看国产一区二区三区99 | 国产成人亚洲综合一区 | 免费大片黄在线观看yw | 国产成人一区二区视频在线观看 | 激情开心婷婷 | 国产成人精品日本亚洲语音2 | 99热这里只有精品一区二 | 国产一级做a爱免费视频 | 99久久国产视频 | 精品九九视频 | 免费特黄一级欧美大片在线看 | 成人亚洲综合 | 中文字幕在线精品视频万部 | 成年女人视频在线观看免费 | 奇米影视一区 | 就操成人网 | 奇米网奇米色 | 色酷综合 | 国产图区 | 欧美成人免费公开播放 | 日本不卡一 | 五月激情六月婷婷 | 天天摸夜夜摸爽爽狠狠婷婷97 | 一机毛片| 国产一级特黄a大片免费 | 亚洲最大黄色网址 | 四虎澳门永久8848在线影院 | 日本特黄一级午夜剧场毛片 | 四虎com| 99re66热这里只有精品17 |