近来看zp的android视频,按照他的视频中开发了几个小软件,学到了一些自己以前都没有学到的知识,所以在这儿总结一下,偶尔温习对自己有很大的帮助吧。
1.关于paddingLeft和layout_marginLeft:
android:paddingLeft 指的是在本控件中,预留闲置多少空间
android:layout_marginLeft 指的是这个控件距离父控件的空间有多少,通常设置后会在界面上看到这个空间和父控件中间有一块空白未被填充。
2.android:visibility这个属性
有三种属性:visibility-----------指的是可见
invisibility----------不可见
gone---------------不可见,它与invisibility的区别是在设置gone以后该控件所占用的空间也会被释放掉,而被其他控件占用
3.GridView中的某些属性:
某一项被点中时显示背景图片 android:listSelector="@drawable/..."
指定GridView每一行的列数 android:numColumns=""
GridView中item间的水平间隔 android:horizontalSpacing=""
4.去除应用程序的title:
在setContentView(R.layout.main)这条语句之前:
requestWindowFeature(Window.FEATURE_NO_TITLE);
5.全屏显示:
先获得这个Activity的Window对象:Window win = getWindow();
然后为这个Window对象设置flag:win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
6.为一个GridView设置适配器的过程
I.为GridView的每一项准备一个布局文件
II.写一个类继承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中的控件赋值。
7.关于PackageInfo
PackageInfo中包含了所有应用程序的信息,包括用户安装的应用程序和系统本身的。
首先获得PackageManager:PackageManager pm = getPackageManager();
然后获得所用应用程序:List list = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
a) PackageInfo封装了什么信息:可以理解为PackageInfo对应着一个Manifest文件,PackageInfo将Minifest的文件进行了封装
i. 包名:packageName
ii. 版本信息:versionCode、versionName
iii. 这个包中的activity的信息
iv. 这个包中receiver的信息
v. 这个包中provider的信息
vi. 这个包中service的信息 都封装成xxxInfo,通过这个就可以得到相应的信息
vii. 还有可以获得applicationInfo
获得应用程序的名称applicationInfo.loadLabel(getPackageManager)
获得应用程序的图标(Drawable)
applicationInfo.loadIcon(getPackageManager)
8.程序中有卸载应用程序的功能时:
跳转到卸载程序页面:只能通过调用系统卸载界面,不能自己通过代码卸载。
只需要一个URI就可以了
Uri packageURI = Uri.parse("package:" + packageName);
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);