2016-05-27 2 views
1

J'ai un gros problème ... Enfin fini mon application, mais ne peut pas le distribuer car sur certains téléphones la qualité du papier peint est mauvaise. Je suis en train de tester mon application sur Note 4, Galaxy S4 et Galaxy S2. Note4 et S2 qualité de fond d'écran est parfait mais avec S4 (pense qu'il y aura plus de téléphones avec un tel problème) je ne sais pas quoi faire. Essayé beaucoup de différentes façons de définir le papier peint, avec la culture, avec des options, directement sans recadrer et les options, jpg, png, mais chaque fois est le même résultat, même avec le fond d'écran Android est le même. Merci pour toute aide. Il y a pousses écran et le code simple à mettre en fond d'écran:Différents téléphone/qualité d'image différente

imgur.com/3hngfbm Note4 - haut de gamme avec PS de 2160x1920 à 2880x2560 JPG (ne peut pas poster 3 liens)

S4 - 2160x1920 JPG

S2 - downscale with PS from 2160x1920 to 960x800 JPG

public void setWallpaper() { 

    WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getActivity().getApplicationContext()); 
    Bitmap bmp = BitmapFactory.decodeStream(getResources().openRawResource(R.raw.img6)); 

    try { 
     myWallpaperManager.setBitmap(bmp); 
     Toast.makeText(getActivity().getApplicationContext(), "Set wallpaper successfully!", Toast.LENGTH_SHORT).show(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

Modifier: J'ai vérifié ce fond d'écran sur un autre S4 mais il est enraciné et avec la guimauve Cyanogenmod. La qualité est parfaite comme sur Note 4 et S2. Que S4 avec une mauvaise qualité ont android 5.0.1

+0

passer par cette http://stackoverflow.com/questions/2025282/difference-between-px-dp-dip -and-sp-on-android – sushildlh

Répondre

1

Peut-être que c'est un problème de résolution de téléphone. Avez-vous essayé de placer différentes tailles d'image dans votre projet? Android a défini ce paramètre pour prendre en charge plusieurs tailles d'écran, ce qui signifie que différentes résolutions de téléphones auront accès à la taille d'image appropriée. Essayez de regarder ceci: https://developer.android.com/guide/practices/screens_support.html Vous devez également les placer avec le même nom d'image. Et Android les accédera automatiquement pour vous. Essayez de les placer dans les dossiers appropriés indiqués dans le lien.


Ou pourquoi ne pas ignorer la conversion bmp? Comme ceci:

public void setWallpaper() { 
    WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 
     try { 
      myWallpaperManager.setResource(R.drawable.img6); 
      Toast.makeText(getActivity().getApplicationContext(), "Set wallpaper successfully!", Toast.LENGTH_SHORT).show(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
} 

Et assurez-vous d'ajouter ceci dans le manifeste:

<uses-permission android:name="android.permission.SET_WALLPAPER"/> 
+0

J'ai été essayé de mettre à l'échelle des images de 4k à tous les téléphones par programmation, mais plus d'échelle plus la qualité était mauvaise, donc décidé de mettre à l'échelle avec photoshop et mettre des images à tous les drawables. Tous les fonds d'écran de téléphones sont parfaits mais la galaxie s4 est comme dans le tournage d'écran. –

+0

La taille S4 est normalement de 1080 en 1920, essayez de l'utiliser et remplacez le 2160 par 1920 que vous avez placé dans votre dessinable. Lorsque l'image est trop grande pour un écran, elle pixellise parfois une image plutôt HD. – berdi9

+0

Le même résultat avec 1080 x 1920 http://imgur.com/Xf7GdRx –