




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
開發(fā)一個android桌面1,關(guān)于lancher要開發(fā)一個自己的桌面,作為程序員,覺得好多的應(yīng)用都在偷偷的跑流量。開發(fā)一個桌面程序,然后常駐系統(tǒng)服務(wù),定時檢查服務(wù)。對系統(tǒng)的其他應(yīng)用網(wǎng)絡(luò)進行監(jiān)控。把一些常用的功能集成進來。做一個訊飛的語音服務(wù)。實現(xiàn)一些簡單的人機交互。2,修改配置文件在AndroidManifest.xml配置文件中增加兩行即可。<activityandroid:name=".MainActivity"><intent-filter><!--增加lancher配置--><categoryandroid:name="ent.category.HOME"/><categoryandroid:name="ent.category.DEFAULT"/><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity>然后這個默認(rèn)的activity程序就成桌面了。按home的時候。會彈出一個選擇框選擇桌面。3,進行優(yōu)化查詢?nèi)縜ppIntentmainIntent=newIntent(Intent.ACTION_MAIN,null);mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);newImageView(MainActivity.this);apps=getPackageManager().queryIntentActivities(mainIntent,0);if(apps!=null){for(ResolveInforesolveInfo:apps){Log.v(TAG,resolveInfo.toString());}}把返回的app顯示到主界面中。實現(xiàn)一個BaseAdapter類。實現(xiàn)getView方法。ResolveInfoinfo=apps.get(i);ViewconvertView=LayoutInflater.from(mContent).inflate(R.layout.text_img_view,null);ImageViewimage=(ImageView)convertView.findViewById(R.id.image);TextViewtext=(TextView)convertView.findViewById(R.id.text);//設(shè)置文字和圖片。text.setText(info.loadLabel(getPackageManager()));image.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));//convertView.setScaleType(ImageView.ScaleType.FIT_CENTER);//使用dp進行參數(shù)設(shè)置。進行分辨率適配。convertView.setLayoutParams(newGridView.LayoutParams((int)mResources.getDimension(R.dimen.app_width),(int)mResources.getDimension(R.dimen.app_height)));//返回一個圖文混合。returnconvertView;定義了一個layout<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ImageViewandroid:id="@+id/image"android:layout_width="50dp"android:layout_height="50dp"android:layout_gravity="center_horizontal"/><TextViewandroid:id="@+id/text"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"/></LinearLayout>上面是圖片,下面是文字。還定義了寬度和高度<resources><dimenname="app_width">90dp</dimen><dimenname="app_height">90dp</dimen></resources>運行效果:很接近了。最后在設(shè)置下打開。壁紙啥的。就都一樣了。4,全部代碼packagecom.demo.lanchertest;importandroid.content.ComponentName;importandroid.content.Context;importandroid.content.Intent;importandroid.content.pm.ResolveInfo;importandroid.content.res.Resources;import.Uri;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.AbsListView;importandroid.widget.AdapterView;importandroid.widget.BaseAdapter;importandroid.widget.GridView;importandroid.widget.ImageView;importandroid.widget.TextView;importcom.google.android.gms.appindexing.Action;importcom.google.android.gms.appindexing.AppIndex;importcom.google.android.gms.appindexing.Thing;importmon.api.GoogleApiClient;importjava.security.AccessControlContext;importjava.util.List;importstaticjava.security.AccessController.getContext;publicclassMainActivityextendsAppCompatActivity{publicstaticfinalStringTAG="Lancher";@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(InstanceState);setContentView(R.layout.activity_main);//加載app應(yīng)用。loadApps();GridViewgridView=(GridView)findViewById(R.id.apps_list);//設(shè)置默認(rèn)適配器。mContent=getApplicationContext();mResources=getResources();gridView.setAdapter(newAppsAdapter());//gridView.setOnItemClickListener(clickListener);}privateAdapterView.OnItemClickListenerclickListener=newAdapterView.OnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>adapterView,Viewview,inti,longl){ResolveInfoinfo=apps.get(i);//該應(yīng)用的包名Stringpkg=info.activityInfo.packageName;//應(yīng)用的主activity類Stringcls=info.activityI;ComponentNamecomponet=newComponentName(pkg,cls);Intentintent=newIntent();intent.setComponent(componet);startActivity(intent);}};privateList<ResolveInfo>apps;privateResourcesmResources;privateContextmContent;privatevoidloadApps(){IntentmainIntent=newIntent(Intent.ACTION_MAIN,null);mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);newImageView(MainActivity.this);apps=getPackageManager().queryIntentActivities(mainIntent,0);if(apps!=null){for(ResolveInforesolveInfo:apps){Log.v(TAG,resolveInfo.toString());}}}publicclassAppsAdapterextendsBaseAdapter{publicAppsAdapter(){}@OverridepublicintgetCount(){returnapps.size();}@OverridepublicObjectgetItem(inti){returnapps.get(i);}@OverridepubliclonggetItemId(inti){returni;}@OverridepublicViewgetView(inti,Viewview,ViewGroupviewGroup){ResolveInfoinfo=apps.get(i);ViewconvertView=LayoutInflater.from(mContent).inflate(R.layout.text_img_view,null);ImageViewimage=(ImageView)convertView.findViewById(R.id.ima
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 訴訟案件司法調(diào)解員委托合同
- 污水車交接協(xié)議書
- 運動員培養(yǎng)協(xié)議書
- 技術(shù)入干股協(xié)議書
- 熱電材料研發(fā)與市場推廣合伙協(xié)議
- 裝載機買賣合同范本
- 實體店代銷協(xié)議書
- 質(zhì)押車買賣協(xié)議書
- 建造機耕路協(xié)議書
- 吳亞軍離婚協(xié)議書
- 2023年中國石油招聘考試真題
- DB43 738-2012 建設(shè)工程消防設(shè)施檢測評定規(guī)則
- 《電力系統(tǒng)繼電保護》考試復(fù)習(xí)題庫(附答案)
- 2024年中級注冊安全工程師《安全生產(chǎn)專業(yè)實務(wù)(道路運輸安全)》真題及答案
- β內(nèi)酰胺類抗菌藥物皮膚試驗指導(dǎo)原則2024課件
- 弱電機房工程報價清單
- 口腔醫(yī)院感染預(yù)防與控制
- 電弧增材制造工藝及其應(yīng)用
- YALEBROWN強迫量表完全
- 醫(yī)療機構(gòu)消毒記錄表清潔消毒日檢查記錄表
- 2024年全國甲卷高考物理試卷(真題+答案)
評論
0/150
提交評論