2015-08-25 3 views
0

Я хочу, чтобы установить обои через приложение для всех устройств, но проблема в том, что мой следующий подход работы для Moto, сони, Micromax, но не должным образом подходит для любого Samsung устройства, как Самсунга S3 , samsung duos, Tab и т. д., в этих устройствах обои значительно увеличиваются, смотрите на скриншотах.обои не правильно подходят на устройствах Samsung

, пожалуйста, помогите мне решить эту проблему.

private void setMyWallpaper() { 

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

    DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 

    // get the height and width of screen 
    int height = metrics.heightPixels; 
    int width = metrics.widthPixels; 

    Drawable drawable = null; 

    if (who.equals("color")) 
     drawable = getResources().getDrawable(colorWallpaper[i]); 
    else 
     drawable = getResources().getDrawable(grayWallpaper[i]); 
    Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); 

    Bitmap wallpaper = Bitmap.createScaledBitmap(bitmap, width, height,true); 
    myWallpaperManager.suggestDesiredDimensions(width, height); 
    try { 
     myWallpaperManager.setBitmap(wallpaper); 
     Log.i("Wall", "Wallpaper set successfully "); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 

Micromax Скриншот холст: - Micromax canvas screenshot

Samsung S3 скриншот: Samsung S3 screenshot

+0

http://stackoverflow.com/questions/22759358/wallpaper-not-properly-fit-on-device-screen –

+0

@IntelliJAmiya я попробовал этот код уже но все еще есть проблема ...... одна вещь вы можете объяснить мне, почему там они используют приемник .... –

+0

@ Garg's Я думаю, что есть проблема с изменением размера изображения с вами. Пожалуйста, проверьте ширину и высоту изображения и экран – PankajSharma

ответ

0

Я решить эту проблему с помощью INTENT вызова вместо WallpaperManager так:

// загрузка файла

File file = new File(getGalleryPath()); 

if (file.exists()) { 
    Intent intent = new Intent(Intent.ACTION_ATTACH_DATA); 
    intent.addCategory(Intent.CATEGORY_DEFAULT); 
    intent.setDataAndType(Uri.fromFile(file), "image/jpeg"); 
    intent.putExtra("mimeType", "image/jpeg"); 
    this.startActivity(Intent.createChooser(intent, "Set as:")); 
} else { 
    Log.d("TEST", "file not exixts."); 
} 

// метод для получения пути изображения

private static String getGalleryPath() { 
    return Environment.getExternalStorageDirectory() + "/" + Environment.DIRECTORY_DCIM + "/MyImages/IMG-20160326-WA0083.jpg"; 
} 
Смежные вопросы