<GridView android:id= "@+id/gv_apps" android:layout_height="fill_parent" android:layout_width="fill_parent" android:numColumns = "3" android:horizontalSpacing="10px" android:verticalSpacing="10px" android:listSelector="@drawable/choose_gridview" android:layout_marginTop="28px" android:layout_marginBottom="58px" android:layout_marginLeft="5px" android:layout_marginRight="5px" ></GridView>
当GridView中的一项被点中的时候显示的背景图片:android:listSelector="@drawable/choose_gridview"
android:numColumns="3" 指定GridView每一行的列数
android:horizontalSpacing="10px" GridView中item间的水平间隔
android:verticalSpacing="10px" GridView中item间的垂直间隔
去除title: requestWindowFeature(Window.FEATURE_NO_TITLE);
全屏显示:
1、 获得这个Activity的Window对象
a) Window win = getWindow()
2、 为这个Window对象设置flag
a) win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
为一个GridView设置适配器的过程
1、 为GridView的每一项准备一个布局文件
2、 写一个类继承BaseAdapter
i. 解释:一个类继承了BaseAdapter,需要重写几个方法,分别是getCount()、getItem()、getItemId()、getView()
ii. 最重要的是getCount和getView方法。GridView中的每一项都是一个View。而这个View是通过getView获得的。当某一项需要显示的时候,它就会调用adapter中的getView方法获得需要展示的view。所以,这个GridView中有几项,就会调用几次getView方法,判断有几项,是通过getCount方法获得。所以在getCount中我们应该返回一个list的大小。在getView中,根据参数position获得list中位于position的某一个对象。通过LayoutInflater将布局文件渲染成一个view,再给这个view中的控件赋值
3、 关于PackageInfo
a) 获得系统中所有安装程序的信息,包括用户安装的和系统本身的:
i. 获得PackageManager pm = getPackageManager()
ii. List list = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES)
b) PackageInfo封装了什么信息:可以理解为PackageInfo对应着一个Manifest文件,PackageInfo将Minifest的文件进行了封装
i. 包名:packageName
ii. 版本信息:versionCode、versionName
iii. 这个包中的activity的信息
iv. 这个包中receiver的信息
v. 这个包中provider的信息
vi. 这个包中service的信息 都封装成xxxInfo,通过这个就可以得到相应的信息
vii. 还有可以获得applicationInfo
1. 获得应用程序的名称applicationInfo.loadLabel(getPackageManager)
2. 获得应用程序的图标(Drawable)
applicationInfo.loadIcon(getPackageManager)