切换图标排列和大小
桌面图标的排列数目和大小代码在DynamicGrid和DeviceProfile中,在Launcher.java的onCreate()中
可以看到:
grid = app.initDynamicGrid(this);
app是LauncherAppState的对象,这句代码就是创建一个grid对象然后供桌面的布局使用,看一下initDynamicGrid方法的代码:
DeviceProfile initDynamicGrid(Context context) {
mDynamicGrid = createDynamicGrid(context, mDynamicGrid);
mDynamicGrid.getDeviceProfile().addCallback(this);
return mDynamicGrid.getDeviceProfile();
}
createDynamicGrid(Context context, DynamicGrid dynamicGrid)方法中传入一个DynamicGrid对象mDynamicGrid,如果mDynamicGrid为null,将调用DynamicGrid的构造方法重新创建一个,这里出现了两种DeviceProfile构造函数。第一种构建了几种常规分辨率屏幕的DeviceProfile列表,第二个构造函数中根据规则选择了与当前屏幕参数最接近的DeviceProfile,onCreate()中用的就是这个DeviceProfile。
如果修改桌面时,想要修改桌面的