




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1GridView<?xmlversion="1.0"encoding="utf-<RelativeLayoutxmlns:android="http://s <RelativeLayoutxmlns:android="http://s android:layout_height="wrap_content"/>publicViewgetView(finalintposition,ViewconvertView,ViewGroupparent){ViewHolderholder=null;if(convertView==null)convertView=inflater.inflate(R.layout.item,null);holder=newViewHolder();holder.img=(ImageView)//holder.pb=(ProgressBar)convertView.findViewById(R.id.pb);holder.iv_select=(ImageView)convertView.findViewById(R.id.iv_select);holder.box=(RelativeLayout)convertView.findViewById(R.id.right_box);holder=(ViewHolder)}Stringurl= y(holder.img,urlnewMyCallBack(holder));/顯示if(checkList.get(position)){/}else{/}holder.box.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv)}return}publicclassMyCallBackextendsDefaultBitmapLoadCallBack<ImageView>{ViewHolderholder;publicMyCallBack(ViewHolderholder){this.holder=holder;}{super.onLoadStarted(container,uri,config);}publicvoidonLoading(ImageViewcontainer,Stringuri,BitmapDisyConfigconfig,longtotal,longcurrent){//this.holder.pb.setProgress((int)(current*100/}publicvoid pleted(ImageViewcontainer,Stringuri,Bitmapbitmap, yConfigconfig,BitmapLoadFromfrom){pleted(container,uri,bitmap,config,}}publicstaticclassViewHolder{ImageViewimg;//ProgressBarpb;RelativeLayoutbox;//可點(diǎn)擊區(qū)域ImageViewiv_select;/圖標(biāo)"選中"}GridViewGridViewlv;packagepublicclassMainActivityextendsActivityimplementsSearchView.OnQueryTextListener,AdapterView.OnItemClickListener,ISelect{//批量""/"刪除"ImageViewiv_btn,iv_select;GridViewGridViewlv;SearchViewsv;TextViewtv;List<String>list;ImageAdapteradapter;StringpublicstaticfinalStringSP_FIlE=privatevoidupdateIV_btn(){if(Constants.state==//圖}}protectedvoidonCreate(BundlesavedInstanceState){/ }privatevoidinitView()iv_btn=(ImageView)findViewById(R.id.iv_btn);iv_select=(ImageView)findViewById(R.id.iv_select);tv=(TextView)findViewById(R.id.tv_info);lv=(GridView)findViewById(R.id.lv_main);adapter=newImageAdapter(this);list=newArrayList<String>();}*根據(jù)當(dāng)前程序的狀態(tài),privatevoidupdate_infobar(Stringif(Constants.state==}if(Constants.state==Constants.S_SDCARD){tv.setText("在文件夾中共有"+list.size()+"張");}Constants.selectedAll=false;}publicboolean )//Inflatethe ;thisaddsitemstotheactionbarifitispresent. Itemmn_search= sv=(SearchView)mn_search.getActionView();sv.setQueryHint("請(qǐng)輸入returntrue;}publicbooleanonOptionsItemSelected( Itemitem){intid=item.getItemId();if(id==R.id.mn_his)Map<String,?>surl=Log.i("spl", String[arrnewString[surl.size()];/intindex=for(Stringkey://Stringurl=surl.get(key).toString();arr[index]=key;//Log.i("spl","url="+}finalString[]farr=//彈出一個(gè)列表new.setItems(farr,newDialogInterface.OnClickListener(){publicvoidonClick(DialogInterfacedialog,intwhich)}return}if(id==R.id.mn_down)list=getDownloadImages(Constants.SAVE_DIR);Constants.stateConstants.S_SDCARD;/更新狀態(tài)return}return}獲取文件中的所有的絕對(duì)路@paramprivateList<String>getDownloadImages(Stringdir){List<String>res=newArrayList<String>();Filefdir=newFile(dir);File[]files=fdir.listFiles();if(files!=null){for(inti=0;i<files.length;i++){res.add(files[i].getAbsolutePath());/絕對(duì)路徑}}return}publicbooleanonQueryTextSubmit(Stringquery)Stringkey=//添加搜索邏 try keyURLEncoder.encode(query,"utf-8");/ }catch(UnsupportedEncodingExceptione) 提交 /return}StringcurrURL=privatevoidgetHttpImages(finalStringquery){currURL=query;if(!query.startsWith("http")){currURL="http://"+query;}newnewReq allBack<String>(){publicvoidonSuccess(ResponseInfo<String>objectResponseInfo)html=docJsoup.parse(html);/HTMLElementslinksdoc.select("a[href]");Log.i("spl","總數(shù):List<StringuseLinksgetUseableLinks(links);/Log.i("spl","過濾后,總數(shù):獲取List<Element>imgs= //Elementsimgsdoc.select("[src]");/存入集合=//所有地址mapImages.clear();/清空for(Elementimg:imgs){//if(img.tagName().equals("img"))/Stringsrc=保持順序不變,if(!mapImages.containsKey(src)){mapImages.put(srcsrc);/}} / Constants.state=/}publicvoidonFailure(HttpExceptione,Strings)Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show();}}}@paramprivateList<String>getUseableLinks(Elementslinks){Map<String,String>mapLinks=newHashMap<String,String>();List<String>lstLinks=newArrayList<String>();StringhomecurrURL;/本站的//links,過濾,保存有效for(Elementlink:links){Stringhref=link.attr("href");//abs:href,if(href.equals("")){continue;//跳過}if(href.equals(home)){continue;//跳過}if(href.startsWith("javascript")){continue;//跳過}if(href.startsWith("/")){href=home+href;}if(!mapLinks.containsKey(href)){mapLinks.put(href,href);//將有效保存至哈希表中}}return}intnumTotalLinks0;/intnumCurrLinks0Map<String,String>mapImages=newHashMap<String,@paramprivatevoiddeepSearch(List<String>//顯示一個(gè)新的水平進(jìn)度框numTotalLinks=links.size();numCurrLinks=0;for(finalStringhref: {publicvoidonSuccess(ResponseInfo<String>objectResponseInfo)2Stringhtml=docJsoup.parse(html);/HTML獲取List<Element>imgs= //Elementsimgsdoc.select("[src]");/存入集合=//所有地for(Elementimg://if(img.tagName().equals("img"))/Stringsrc=保持順序不變,if(!mapImages.containsKey(src)){mapImages.put(srcsrc);/}}//L.log("在頁面"+href+":總共抓到(去重}publicvoidonFailure(HttpExceptione,Strings){}}}在最后一個(gè)抓取結(jié)束后,更新列@paramprivatevoidupdate_final(Stringpd.setMessage("當(dāng)前抓取到的數(shù)if(numCurrLinksnumTotalLinks){///結(jié)束深度搜索,UI}}//1進(jìn)度框?qū)rogressDialogpublicvoidshowProgressDialog(Stringmsg,booleanisHorizon){pd=newProgressDialog(MainActivity.this);if(isHorizon){}else}}publicbooleanonQueryTextChange(StringnewText){returntrue;}得到網(wǎng)頁中的地publicstaticList<String>getImgSrcList(StringhtmlStr,Stringend){List<String>pics=newArrayList<String>();StringregEx_img="<img.*?src=\"http://(.*?)."+end+"\"";//地址Patternp_image= pile(regEx_img,Pattern.CASE_INSENSITIVE);Matcherm_image=p_image.matcher(htmlStr);while(m_image.find())Stringsrc=m_image.group(1);if(src.length()<100){pics.add("http://"+src+}}return}publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid)item點(diǎn)擊Stringurl(Stringparent.getItemAtPosition(position);IntentintentnewIntent(this,DragImageActivity.class);intent.putExtra(Constants.P_POS,position);//位置}privateString[]String[]arr=newString[list.size()];for(inti=0;i<list.size();i++){arr[i]=}return}privatebooleanfor(Booleanvalue:adapter.getCheckList().values()){if(value){return}}return}privateintgetSelectedNumber(){intnumber=0;for(Booleanvalue:adapter.getCheckList().values()){if(value){}}return}publicvoidhandleSelected(intposition)booleantempadapter.getCheckList().get(position);///判斷當(dāng)前選中的個(gè)數(shù)1個(gè)選中0if//顯示}}//點(diǎn)擊"批量"按publicvoidiv_btnClick(Viewif(v.getId()==R.id.iv_select)全選/Constants.selectedAll=!Constants.selectedAll;if(Constants.selectedAll){}判斷當(dāng)前選中的個(gè)數(shù)1個(gè)選中0if//顯示}}if(v.getId()==R.id.iv_btn)if(Constants.state==Constants.S_WEB)批量Constants.num_max=getSelectedNumber();Constants.num_curr=0;//添加進(jìn)度(水平showProgressDialog("開始批量",pd.setTitle("批量");//遍歷哈希表,哪些選中的item是的for(Integerposition:adapter.getCheckList().keySet()){if(adapter.getCheckList().get(position)){//當(dāng)前需要/}}}elsefor(Integerposition:adapter.getCheckList().keySet()){if(adapter.getCheckList().get(position)){//當(dāng)前需要?jiǎng)hStringpath=list.get(position);Filefile=newFile(path);if(file.exists()){file.delete();/刪除}}}SPUtils.showToast("所有刪除完畢list=getDownloadImages(Constants.SAVE_DIR);Constants.stateConstants.S_SDCARD;/更新狀態(tài)}}}publicvoiddownloadImage(String//文件Filefdir=newif(!fdir.exists()){} newHttpUtils().download(url,target,newReq allBack<File>(){publicvoidonSuccess(ResponseInfo<File>fileResponseInfo)if(Constants.num_curr>=//全部//去掉勾選adapter.initCheckList();/false}}publicvoidonFailure(HttpExceptione,Strings){if(Constants.num_curr>=//全部//去掉勾選adapter.initCheckList();/false}}}}
3<RelativeLayoutxmlns:android="http://s 水平進(jìn)度條(嵌入布局的)ProgressBarpb_hor;pb_hor=(ProgressBar)privatevoiddeepSearch(List<String>numTotalLinks=links.size();numCurrLinks=0; privatevoidupdate_final(Stringif(numCurrLinksnumTotalLinks){/最后一名}}privatevoidupdate_infobar(Stringif(Constants.state== }if(Constants.state==Constants.S_SDCARD){tv.setText("在文件夾中共有"+list.size()+"張!");}Constants.selectedAll=false;}StringcurrURL="";Stringcurrquery="";privatevoidgetHttpImages(finalStringquery){currquery=query;currURL=if(!query.startsWith("http")){currURL="http://"+query;}newnewReq allBack<String>(){publicvoidonSuccess(ResponseInfo<String>objectResponseInfo)
new.setMessage(currquery+"已經(jīng)抓取完畢,是否進(jìn)行深度抓取?( DialogInterface.OnClickListener(){{//}privatevoiddeepSearch(StringdocJsoup.parse(html);/HTMLElementslinksdoc.select("a[href]");Log.i("spl","總數(shù):List<StringuseLinksgetUseableLinks(links);/Log.i("spl","過濾后,總數(shù):5booleaninDeepSearch=booleanstopGrab=false;privatelongmExitTime;publicvoidonBackPressed(){if(inDeepSearch){stopGrab=true;inDeepSearch=false;if((System.currentTimeMillis(mExitTime2000Toast.makeText(this,"在按一次退出",mExitTime=System.currentTimeMillis();}else}}}privatevoiddeepSearch(StringinDeepSearch=true;stopGrab=false;docJsoup.parse(html);/HTMLElementslinksdoc.select("a[href]");Log.i("spl","總數(shù):List<StringuseLinksgetUseableLinks(links);/Log.i("spl","過濾后,總數(shù):numTotalLinks=useLinks.size();numCurrLinks=0;tv.setText("在網(wǎng)頁currURL中繼續(xù)抓取for(finalStringhref: allBack<String>(){publicvoidonSuccess(ResponseInfo<String>objectResponseInfo){if(!stopGrab){2Stringhtml= docJsoup.parse(html);/HTML獲取List<Element>imgs= //Elementsimgsdoc.select("[src]");/存入集合=//所有地for(Elementimg://if(img.tagName().equals("img"))/Stringsrc=保持順序不變,if(!mapImages.containsKey(src)){mapImages.put(srcsrc);/}}//L.log("在頁面"+href+":總共抓到(去重 }}publicvoidonFailure(HttpExceptione,Strings)if(!stopGrab){}}}}1activity_home.xml<RelativeLayout item_home.xml<?xmlversion="1.0"encoding="utf-<RelativeLayoutxmlns:android="http://s android:text="名"android:layout_height="wrap_content2publicclassHomeLinkpublicHomeLink(Stringname,Stringimage,Stringurl){=name;this.image=image;this.url=url;}publicStringname;publicStringimage;publicString}publicclassHomeAdapterextendsBitmapUtils/**數(shù)據(jù)集合*/List<HomeLinklist;/**反射器*/LayoutInflaterinflater;public@paramcontextpublicHomeAdapter(Contextcontext){inflater=LayoutInflater.from(context);bitmapUtils=SPUtils.getBitmapUtils();}@parampublicvoidsetList(List<HomeLink>list){this.list=list;}publicvoidaddList(List<HomeLinklistthis.list.addAll(list);//尾部追加}publicintgetCount()return(list==null)?}publicObjectgetItem(intposition){returnlist.get(position);}publiclonggetItemId(intposition){returnposition;}publicViewgetView(finalintposition,ViewconvertView,ViewGroupparent)ViewHolderholder=null;if(convertView==null){convertView=inflater.inflate(R.layout.item_home,null);holder=newViewHolder();holder.img=(ImageView)convertView.findViewById(R.id.iv_img);holder.tv_name=(TextView)convertView.findViewById(R.id.tv_name);holder=(ViewHolder)}HomeLinklink=list.get(position); y(holder.img,link.image);/顯示return}publicstaticclassViewHolder{ImageViewimg;TextView}}SPUtilspublicstaticBitmapUtilsgetBitmapUtils(){if(bitmapUtils==null){bitmapUtils=newBitmapUtils(context);片敗///}return}{GridViewHomeAdapterList<HomeLink>protectedvoidonCreate(BundlesavedInstanceState){ }privatevoidinitView()gv=(GridView)findViewById(R.id.lv_main);adapter=newHomeAdapter(this);}privatevoidinitData()list=newlist.add(newHomeLink("","assets/1.jpg"," list.add(newHomeLink("MOKO美空","assets/2.jpg"," list.add(newHomeLink("1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 測(cè)控軟件基礎(chǔ)知識(shí)培訓(xùn)課件
- 廢塑突發(fā)環(huán)境事件應(yīng)急預(yù)案(3篇)
- 拍賣師資格考試(主持技巧)模擬試題及答案(黑龍江省2025)
- asc應(yīng)急預(yù)案是什么意思(3篇)
- 寧波寫字樓裝修知識(shí)培訓(xùn)課件
- 湖南外國語職業(yè)學(xué)院《高等代數(shù)1》2024-2025學(xué)年第一學(xué)期期末試卷
- 寧夏網(wǎng)絡(luò)推廣知識(shí)培訓(xùn)課件
- 長春中醫(yī)藥大學(xué)《程序設(shè)計(jì)基礎(chǔ)II》2024-2025學(xué)年第一學(xué)期期末試卷
- 政府地下車庫汛期應(yīng)急預(yù)案(3篇)
- 土路基施工方案(3篇)
- 電商退換貨流程標(biāo)準(zhǔn)操作手冊(cè)
- 2025年法檢系統(tǒng)書記員招聘考試(申論)歷年參考題庫含答案詳解(5套)
- 2025年幼兒園教師《指南》《幼兒教師專業(yè)標(biāo)準(zhǔn)》學(xué)習(xí)測(cè)試題(附答案)
- (2025年標(biāo)準(zhǔn))夜市經(jīng)營協(xié)議書
- 加油站雷電安全知識(shí)培訓(xùn)課件
- 辦公自動(dòng)化使用教材課件
- 2025年佛山轉(zhuǎn)業(yè)士官考試題庫
- 2025年專業(yè)士官考試題庫
- 院前急救技能大賽
- 2025年事業(yè)單位工勤技能-安徽-安徽水土保持工五級(jí)(初級(jí)工)歷年參考題庫含答案解析(5卷套題【單選100題】)
- 2024年武漢廣播電視臺(tái)專項(xiàng)招聘真題
評(píng)論
0/150
提交評(píng)論