2013-08-21 2 views
0

나는 화면 크기에 맞게 이미지를 화면에 배경 화면을 적용 응용 프로그램을 가지고있다. 는이 설정을 바탕 화면에 내 코드입니다 :WallpaperManager suggestDesiredDimensions()는 삼성 휴대폰에 영향을주지 않습니다

WallpaperManager wallpaperManager = WallpaperManager.getInstance(MainActivity.this); 
BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inJustDecodeBounds = true; 
try { 
    BitmapFactory.decodeResource(getResources(), wallpapersPagerAdapter.getWallpaperId(position), options); 
    wallpaperManager.suggestDesiredDimensions(options.outWidth, options.outHeight); 

    wallpaperManager.setResource(wallpapersPagerAdapter.getWallpaperId(position)); 
} catch (IOException e) { 
    Log.e(Constants.LOG_TAG, e.getMessage()); 
    Toast.makeText(MainActivity.this, R.string.err_can_not_set_wallpaper, Toast.LENGTH_SHORT).show(); 
    return; 
} 

그리고 그것은 대부분의 장치에 완벽하게 workd하지만 갤럭시 S4와 갤럭시 S3 (I 다른 삼성 휴대폰이 같은 문제가됩니다 가정)에 절대적으로 영향을 suggestDesiredDimensions()이 없습니다. 원하는 차원에 관계없이이 전화 이미지의 크기가 조정됩니다.

하지만 Backgrounds HD 응용 프로그램에서이 문제가 발생하지 않는 것을 발견했습니다. 그래서 어떻게 내 월페이퍼 크기가 1080x1920 인 실제 크기라고 가정하고 작곡하지 않고 은하계 4 (또는 s3)에 배경 화면을 설정할 수 있습니까?

답변

0

글쎄, 나는 Set as 의도를 사용하여 고정. 그것은 TouchWiz에 차원을 설정하는 방법이 아닌 것 같습니다.

 Intent intent = new Intent(Intent.ACTION_ATTACH_DATA); 
     MimeTypeMap map = MimeTypeMap.getSingleton(); 

     String mimeType = map.getMimeTypeFromExtension("jpg"); 
     File file = new File(filePath); 

     Uri uri = Uri.fromFile(file); 
     intent.setDataAndType(uri, mimeType); 
     intent.putExtra("mimeType", mimeType); 
     intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
     context.hideProgressDialog(); 
     context.startActivityForResult(Intent.createChooser(intent, "Set as"), 
       Constants.REQUEST_CODE_SET_WALLPAPER); 
: 여기 내 코드입니다
관련 문제