開發(fā)一個android桌面_第1頁
開發(fā)一個android桌面_第2頁
開發(fā)一個android桌面_第3頁
開發(fā)一個android桌面_第4頁
開發(fā)一個android桌面_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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>然后這個默認的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è)置默認適配器。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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論