編輯:關於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()方法的調用(有兩處)。
Android 驅動(二) IIC簡介
一、 I2C簡介 I2C(Inter-Integrated Circuit)總線是一種由 Philips 公司開發的兩線式串行總線,用於連接微控制器及其外圍設備。I2
android開源圖表庫MPAndroidChart文檔翻譯(上)
MPAndroidChart 是 Android 系統上一款開源的圖表庫。目前提供線圖和餅圖,支持選擇、縮放和拖放。android開源圖表庫MPAndroidChar的g
深入剖析Android四大組件(八)——結束Activity的4個階段
當我們試圖結束Activity的時候,ActivityManagerService的行為將會是怎樣的呢?這一節將介紹結束Activity的3種主要方法和4個階段。&nbs
Android Sqlite數據庫常用操作
很久前也寫過一篇Android數據庫操作相關內容。在正式項目中,我們通常會使用數據庫開源框架如GreenDao來對數據庫進行操作。感覺很久沒有直接使用Sql語句了,這幾天