안녕하세요. 안드로이드 개발자입니다.


제가 갤럭시탭 10.1 해상도 (2560 x 1600) 단말에 어떤 테스트 액티비티를 만들고 실행하면은 바로 onCreate 가 실행이 되고 

바로 홈화면의 배경을 하드코딩된 파일로 셋팅을 하려고 합니다. 실행후 백키를 누르면 바로 홈화면에 적용된 화면이 보이는 것 까지는

잘되지만, 아래 두가지가 안됩니다.


1. 화면이미지가 정확히 화면에 다나와야 하는데, 위 아래 좌 우 짤려서 확대된 상태로 나옵니다.

2. 부팅을 하면 또한 위 아래 좌 우 짤려서 확대된 상태로 나옵니다.


문제는 실행후 홈화면 보려고 백키를 누르면 어쩔때는 또 잘나옵니다.  그러다가 다시 실행시켜서 하면 또 확대되어서 나오구요.

특히 잘나오더라도 부팅을 하면 또 확대되어서 나오더군요.

이거 사람 정말 미치고 짜증나게 만들더군요... API를 잘좀 만들던가... 문서대로 확실히 기능동작이 되던가...

에휴... 문서에는 된다는 말만 있고 일체 관련 글도 없고, 정말 안드로이드 홈 배경화면 넣는것 때문에 죽겠습니다.


아래는 사용한 코드 입니다.


< 실행 액티비티 >

 protected void onCreate(Bundle savedInstanceState)
 {  

     ...

     ImageHelper.setImageBackgroundHomeScreen(this);  

 }



< 유틸리티 클레스 >

public class ImageHelper

{

    public static void setImageBackgroundHomeScreen(Context context)
    {
      Display display = ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
      Bitmap imageSource = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getPath() + "/mvci/temp/" + "output.jpg" ); 

      try
     {
         WallpaperManager wm = (WallpaperManager)context.getSystemService(Context.WALLPAPER_SERVICE);
         wm.clear();
         wm.setBitmap(Bitmap.createScaledBitmap(imageSource, display.getWidth(), display.getHeight(), false));
         wm.suggestDesiredDimensions(display.getWidth(), display.getHeight());
      }
     catch (IOException e)
     {
          e.printStackTrace();
      }
 }        




< androidmanifest.xml >

 . . .

 <!-- Home Screen Background Setting -->
 <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>
 <uses-permission android:name="android.permission.SET_WALLPAPER"/>
   





]