2013-08-28 1 views
1

시스템 배경 화면을 변경하는 앱을 만들려고합니다. 내 코드에서는 원하는 최소 크기 (WallpaperManager에서 가져온 이미지)를 얻습니다. 예를 들어 Nexus One에서 원하는 최소 크기는 884x800입니다. 내 이미지를 가져 와서 배경 화면으로 설정하면 884x800 이미지 (Nexus One의 화면 해상도는 480x800)의 왼쪽 만 볼 수 있도록 자동으로 "왼쪽 정렬"됩니다.센터 Android 배경 화면

"중심"으로 설정할 수있는 방법이 있습니까?

나는이 같은 배경 화면을 설정하고 있습니다 :

WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 

try { 
    wallpaperManager.setBitmap(bitmap); 
} catch (IOException e) { 
    Log.e("Error", e.toString()); 
} 

참고 : 나는 그것을 불면 480X800으로 이미지를 얻는 경우가 벽지 때 그래서 나는 단지 왼쪽 상단을 볼 수 있습니다.

:

여기

는 내가 배경 화면으로 설정할 때 어떻게 생겼는지의 예입니다 : 여기

는 884x800 인 이미지의 예입니다 다음은 480x800 이미지를 사용할 때의 모습입니다.

답변

0

가상 홈 화면간에 전환을 시도 했습니까? 가장 왼쪽 가상 홈 화면에 있지 않습니까?

0

I 화면 크기 (넥서스 하나 480X800)의 화상을 얻고 다음 (넥서스 원 대한 884x800) 원하는 크기였다 비트 맵으로 복사 결국 MY SOLUTION

.

//Getting the image 
Display display = getWindowManager().getDefaultDisplay(); 
     screenSize = new Point(); 
display.getSize(screenSize); 
new LoadImageTask(screenSize.x, screenSize.y, this).execute(); 

...

// In the response listener 
WallpaperManager wallpaperManager = WallpaperManager.getInstance(this); 
Point desiredSize = new Point(
     wallpaperManager.getDesiredMinimumWidth(), 
     wallpaperManager.getDesiredMinimumHeight()); 

Bitmap wallpaper = Bitmap.createBitmap(desiredSize.x, desiredSize.y, Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(wallpaper); 
canvas.drawBitmap(bitmap, 0, 0, null); 

try { 
    wallpaperManager.setBitmap(wallpaper); 
} catch (IOException e) { 
    Log.e("Error", e.toString()); 
} 

그리고 모든 가상 스크린에서 작동