先看一下效果图:
当点击《愤怒的小鸟》时,将打开《愤怒的小鸟》这个游戏
main.xml的源代码如下:
[size=1em][backcolor=rgb(108, 226, 108) !important][size=1em]1 [size=1em]2 [size=1em]3 [size=1em]4 [size=1em]5 [size=1em]6 [size=1em]7 [size=1em]8 [size=1em]9 [size=1em]10 [size=1em]11 [size=1em]12 [size=1em]13 [size=1em]14 [size=1em]15 [size=1em]16 [size=1em]17 [size=1em]18 | [size=1em][size=1em]<?xml version="1.0" encoding="utf-8"?> [size=1em]<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" [size=1em] android ![]() [size=1em] android:layout_width="fill_parent" [size=1em] android:layout_height="fill_parent" [size=1em] > [size=1em] <GridView xmlns:android="http://schemas.android.com/apk/res/android" [size=1em] android:id="@+id/gridview" [size=1em] android:layout_width="fill_parent" [size=1em] android:layout_height="fill_parent" [size=1em] android:numColumns="auto_fit" [size=1em] android:verticalSpacing="15dp" [size=1em] android:horizontalSpacing="12dp" [size=1em] android:columnWidth="95dp" [size=1em] android:stretchMode="columnWidth" [size=1em] android:gravity="center" [size=1em] /> [size=1em]</LinearLayout> |
[size=1em]1 [size=1em]2 [size=1em]3 [size=1em]4 [size=1em]5 [size=1em]6 [size=1em]7 [size=1em]8 [size=1em]9 [size=1em]10 [size=1em]11 [size=1em]12 [size=1em]13 [size=1em]14 [size=1em]15 [size=1em]16 [size=1em]17 [size=1em]18 [size=1em]19 [size=1em]20 [size=1em]21 [size=1em]22 | [size=1em][size=1em]<?xml version="1.0" encoding="utf-8"?> [size=1em]<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" [size=1em] android ![]() [size=1em] android:layout_width="fill_parent" [size=1em] android:layout_height="fill_parent" [size=1em] android:gravity="center" > [size=1em] <ImageView [size=1em] android:id="@+id/apps_image" [size=1em] android:layout_width="48dip" [size=1em] android:layout_height="48dip" [size=1em] android:icon="@drawable/icon" /> [size=1em] <TextView [size=1em] android:id="@+id/apps_textview" [size=1em] android:layout_width="wrap_content" [size=1em] android:layout_height="wrap_content" [size=1em] android:maxLines="1" [size=1em] android:maxEms="5" [size=1em] android:text="good" /> [size=1em]</LinearLayout> |
接下来就是java源代码了,比较长,希望耐心看下去
[size=1em][backcolor=rgb(108, 226, 108) !important][size=1em]1 [size=1em]2 [size=1em]3 [size=1em]4 [size=1em]5 [size=1em]6 [size=1em]7 [size=1em]8 [size=1em]9 [size=1em]10 [size=1em]11 [size=1em]12 [size=1em]13 [size=1em]14 [size=1em]15 [size=1em]16 [size=1em]17 [size=1em]18 [size=1em]19 [size=1em]20 [size=1em]21 [size=1em]22 [size=1em]23 [size=1em]24 [size=1em]25 [size=1em]26 [size=1em]27 [size=1em]28 [size=1em]29 [size=1em]30 [size=1em]31 [size=1em]32 [size=1em]33 [size=1em]34 [size=1em]35 [size=1em]36 [size=1em]37 [size=1em]38 [size=1em]39 [size=1em]40 [size=1em]41 [size=1em]42 [size=1em]43 [size=1em]44 [size=1em]45 [size=1em]46 [size=1em]47 [size=1em]48 [size=1em]49 [size=1em]50 [size=1em]51 [size=1em]52 [size=1em]53 [size=1em]54 [size=1em]55 [size=1em]56 [size=1em]57 [size=1em]58 [size=1em]59 [size=1em]60 [size=1em]61 [size=1em]62 [size=1em]63 [size=1em]64 [size=1em]65 [size=1em]66 [size=1em]67 [size=1em]68 [size=1em]69 [size=1em]70 [size=1em]71 [size=1em]72 [size=1em]73 [size=1em]74 [size=1em]75 [size=1em]76 [size=1em]77 [size=1em]78 [size=1em]79 [size=1em]80 [size=1em]81 [size=1em]82 [size=1em]83 [size=1em]84 [size=1em]85 [size=1em]86 [size=1em]87 [size=1em]88 [size=1em]89 [size=1em]90 [size=1em]91 [size=1em]92 [size=1em]93 [size=1em]94 [size=1em]95 [size=1em]96 [size=1em]97 [size=1em]98 [size=1em]99 [size=1em]100 [size=1em]101 [size=1em]102 [size=1em]103 [size=1em]104 [size=1em]105 [size=1em]106 [size=1em]107 [size=1em]108 [size=1em]109 [size=1em]110 [size=1em]111 [size=1em]112 [size=1em]113 [size=1em]114 [size=1em]115 [size=1em]116 [size=1em]117 [size=1em]118 [size=1em]119 [size=1em]120 [size=1em]121 [size=1em]122 [size=1em]123 [size=1em]124 [size=1em]125 [size=1em]126 [size=1em]127 [size=1em]128 [size=1em]129 [size=1em]130 [size=1em]131 [size=1em]132 [size=1em]133 [size=1em]134 [size=1em]135 [size=1em]136 [size=1em]137 [size=1em]138 [size=1em]139 [size=1em]140 [size=1em]141 [size=1em]142 [size=1em]143 [size=1em]144 [size=1em]145 [size=1em]146 [size=1em]147 [size=1em]148 [size=1em]149 [size=1em]150 [size=1em]151 [size=1em]152 [size=1em]153 [size=1em]154 [size=1em]155 [size=1em]156 [size=1em]157 [size=1em]158 [size=1em]159 [size=1em]160 [size=1em]161 [size=1em]162 [size=1em]163 [size=1em]164 [size=1em]165 [size=1em]166 [size=1em]167 [size=1em]168 [size=1em]169 [size=1em]170 [size=1em]171 [size=1em]172 [size=1em]173 [size=1em]174 [size=1em]175 [size=1em]176 [size=1em]177 [size=1em]178 [size=1em]179 [size=1em]180 [size=1em]181 [size=1em]182 [size=1em]183 [size=1em]184 [size=1em]185 [size=1em]186 [size=1em]187 [size=1em]188 [size=1em]189 [size=1em]190 [size=1em]191 [size=1em]192 [size=1em]193 | [size=1em][size=1em]package com.android.game; [size=1em]import java.util.ArrayList; [size=1em]import java.util.List; [size=1em]import android.app.Activity; [size=1em]import android.content.Context; [size=1em]import android.content.Intent; [size=1em]import android.content.pm.PackageInfo; [size=1em]import android.content.pm.PackageManager; [size=1em]import android.graphics.drawable.Drawable; [size=1em]import android.os.Bundle; [size=1em]import android.view.LayoutInflater; [size=1em]import android.view.View; [size=1em]import android.view.ViewGroup; [size=1em]import android.widget.AdapterView; [size=1em]import android.widget.BaseAdapter; [size=1em]import android.widget.GridView; [size=1em]import android.widget.ImageView; [size=1em]import android.widget.TextView; [size=1em]import android.widget.AdapterView.OnItemClickListener; [size=1em]public class Apps extends Activity { [size=1em] // 用来记录应用程序的信息 [size=1em] List<AppsItemInfo> list; [size=1em] private GridView gridview; [size=1em] private PackageManager pManager; [size=1em] @Override [size=1em] protected void onCreate(Bundle savedInstanceState) { [size=1em] // TODO Auto-generated method stub [size=1em] super.onCreate(savedInstanceState); [size=1em] this.setContentView(R.layout.main); [size=1em] // 取得gridview [size=1em] gridview = (GridView) findViewById(R.id.gridview); [size=1em] // 获取图片、应用名、包名 [size=1em] pManager = Apps.this.getPackageManager(); [size=1em] List< ![]() [size=1em] list = new ArrayList<AppsItemInfo>(); [size=1em] for (int i = 0; i < appList.size(); i++) { [size=1em] PackageInfo pinfo = appList.get(i); [size=1em] AppsItemInfo shareItem = new AppsItemInfo(); [size=1em] // 设置图片 [size=1em] shareItem.setIcon(pManager [size=1em] .getApplicationIcon(pinfo.applicationInfo)); [size=1em] // 设置应用程序名字 [size=1em] shareItem.setLabel(pManager.getApplicationLabel( [size=1em] pinfo.applicationInfo).toString()); [size=1em] // 设置应用程序的包名 [size=1em] shareItem.setPackageName(pinfo.applicationInfo.packageName); [size=1em] list.add(shareItem); [size=1em] } [size=1em] // 设置gridview的Adapter [size=1em] gridview.setAdapter(new baseAdapter()); [size=1em] // 点击应用图标时,做出响应 [size=1em] gridview.setOnItemClickListener(new ClickListener()); [size=1em] } [size=1em] public static List< ![]() [size=1em] List< ![]() ![]() [size=1em] PackageManager pManager = context.getPackageManager(); [size=1em] // 获取手机内所有应用 [size=1em] List< ![]() [size=1em] for (int i = 0; i < packlist.size(); i++) { [size=1em] PackageInfo pak = (PackageInfo) packlist.get(i); [size=1em] // 判断是否为非系统预装的应用程序 [size=1em] // 这里还可以添加系统自带的,这里就先不添加了,如果有需要可以自己添加 [size=1em] // if()里的值如果<=0则为自己装的程序,否则为系统工程自带 [size=1em] if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) { [size=1em] // 添加自己已经安装的应用程序 [size=1em] apps.add(pak); [size=1em] } [size=1em] } [size=1em] return apps; [size=1em] } [size=1em] private class baseAdapter extends BaseAdapter { [size=1em] LayoutInflater inflater = LayoutInflater.from(Apps.this); [size=1em] @Override [size=1em] public int getCount() { [size=1em] // TODO Auto-generated method stub [size=1em] return list.size(); [size=1em] } [size=1em] @Override [size=1em] public Object getItem(int position) { [size=1em] // TODO Auto-generated method stub [size=1em] return null; [size=1em] } [size=1em] @Override [size=1em] public long getItemId(int position) { [size=1em] // TODO Auto-generated method stub [size=1em] return position; [size=1em] } [size=1em] @Override [size=1em] public View getView(int position, View convertView, ViewGroup parent) { [size=1em] // TODO Auto-generated method stub [size=1em] ViewHolder holder; [size=1em] if (convertView == null) { [size=1em] // 使用View的对象itemView与R.layout.item关联 [size=1em] convertView = inflater.inflate(R.layout.apps, null); [size=1em] holder = new ViewHolder(); [size=1em] holder.icon = (ImageView) convertView [size=1em] .findViewById(R.id.apps_image); [size=1em] holder.label = (TextView) convertView [size=1em] .findViewById(R.id.apps_textview); [size=1em] convertView.setTag(holder); [size=1em] } else { [size=1em] holder = (ViewHolder) convertView.getTag(); [size=1em] } [size=1em] holder.icon.setImageDrawable(list.get(position).getIcon()); [size=1em] holder.label.setText(list.get(position).getLabel().toString()); [size=1em] return convertView; [size=1em] } [size=1em] } [size=1em] // 当用户点击应用程序图标时,将对这个类做出响应 [size=1em] private class ClickListener implements OnItemClickListener { [size=1em] @Override [size=1em] public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, [size=1em] long arg3) { [size=1em] // 将应用所选的应用程序信息共享到Application中 [size=1em] MyApp appState = ((MyApp) getApplicationContext()); [size=1em] // 获取当前所在选项卡 [size=1em] String tab_id = appState.getTab_id(); [size=1em] // 设置所选应用程序信息 [size=1em] appState.set_AppInfo(tab_id, list.get(arg2).getLabel(), list.get( [size=1em] arg2).getIcon(), list.get(arg2).getPackageName()); [size=1em] Intent intent = new Intent(Apps.this, Game.class); [size=1em] startActivity(intent); [size=1em] // 销毁当前Activity [size=1em] finish(); [size=1em] } [size=1em] } [size=1em] // 自定义一个 AppsItemInfo 类,用来存储应用程序的相关信息 [size=1em] private class AppsItemInfo { [size=1em] private Drawable icon; // 存放图片 [size=1em] private String label; // 存放应用程序名 [size=1em] private String packageName; // 存放应用程序包名 [size=1em] public Drawable getIcon() { [size=1em] return icon; [size=1em] } [size=1em] public void setIcon(Drawable icon) { [size=1em] this.icon = icon; [size=1em] } [size=1em] public String getLabel() { [size=1em] return label; [size=1em] } [size=1em] public void setLabel(String label) { [size=1em] this.label = label; [size=1em] } [size=1em] public String getPackageName() { [size=1em] return packageName; [size=1em] } [size=1em] public void setPackageName(String packageName) { [size=1em] this.packageName = packageName; [size=1em] } [size=1em] } [size=1em]} |
欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) | Powered by Discuz! X3.4 |