編輯:關於Android編程
Launcher3壁紙的規格默認是:壁紙高度=屏幕高度,壁紙寬帶=屏幕寬度*2倍
Android4.4的壁紙信息存放在/data/system/users/0/目錄下,WallpaperManagerService啟動後,會生成如下兩個文件在/data/system/users/0/目錄下:
static final String WALLPAPER = wallpaper; //設置的壁紙圖片,一般為jpeg格式 static final String WALLPAPER_INFO = wallpaper_info.xml; //包含牆紙的規格信息:高、寬
下面我們就應該在Launcher3裡將壁紙的高、寬信息寫入上面說的wallpaper_info.xml文件中(當然時機寫入動作還是在Framework中),Launcher3只是將其自身需要的牆紙高、寬寫入wallpaper_info.xml,你使用Go桌面,那肯定是在Go桌面設置高、寬了。
1. 找對位置後很簡單,就是Launcher3的WallpaperCropActivity.java文件getDefaultWallpaperSize()。
static protected Point getDefaultWallpaperSize(Resources res, WindowManager windowManager) { Point minDims = new Point(); Point maxDims = new Point(); windowManager.getDefaultDisplay().getCurrentSizeRange(minDims, maxDims); int maxDim = Math.max(maxDims.x, maxDims.y); int minDim = Math.max(minDims.x, minDims.y); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) { Point realSize = new Point(); windowManager.getDefaultDisplay().getRealSize(realSize); maxDim = Math.max(realSize.x, realSize.y); minDim = Math.min(realSize.x, realSize.y); } // We need to ensure that there is enough extra space in the wallpaper // for the intended // parallax effects final int defaultWidth, defaultHeight; if (isScreenLarge(res)) { defaultWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim)); defaultHeight = maxDim; } else { defaultWidth = Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim); defaultHeight = maxDim; } return new Point(defaultWidth, defaultHeight); }
2. cropImageAndSetWallpaper()方法,這個方法應該是設置牆紙時,按牆紙規格裁剪圖片用到的,該法與上面一樣。
3. 阻止Launcher3滑屏時,滑動牆紙:在Workspace.java中,注釋updateOffset()方法的調用(有兩處)。
一、 I2C簡介 I2C(Inter-Integrated Circuit)總線是一種由 Philips 公司開發的兩線式串行總線,用於連接微控制器及其外圍設備。I2
MPAndroidChart 是 Android 系統上一款開源的圖表庫。目前提供線圖和餅圖,支持選擇、縮放和拖放。android開源圖表庫MPAndroidChar的g
當我們試圖結束Activity的時候,ActivityManagerService的行為將會是怎樣的呢?這一節將介紹結束Activity的3種主要方法和4個階段。&nbs
很久前也寫過一篇Android數據庫操作相關內容。在正式項目中,我們通常會使用數據庫開源框架如GreenDao來對數據庫進行操作。感覺很久沒有直接使用Sql語句了,這幾天