2015-07-22 2 views
1

Une autre question de fond d'écran, je l'ai mis en utilisant le gestionnaire de fond d'écran mais j'ai trouvé le fond d'écran ne défile pas, essayé différents lanceurs mais la même chose se passe personne n'a répondu à mon autre question donc j'ai trouvé une réponse qui obtient les dimensions de l'écran et les dimensions des bitmaps sur android hive puis met à l'échelle le bitmap en conséquence.fond d'écran défilement sur android 4x et dessus

bitmapWidth = (bitmapWidth * screenHeight)/bitmapHeight; 

Ce dessin Œuvres! l'image défile mais l'image est trop étendue donc im en utilisant cette méthode et en jouant avec la hauteur et la largeur de l'écran et la largeur et la largeur bitmap pour obtenir ce que je veux est que l'image soit parfaitement mise à l'échelle correctement toutes les suggestions?

+0

Quelle est votre question? – Machado

+0

désolé @holmes votre droit n'est pas clair éditera la question, je veux que le fond d'écran soit mis à l'échelle correctement et faites défiler et ive trouvé une solution mais s'il vous plaît jeter un oeil à mon autre question liée ci-dessus –

Répondre

0

donc après avoir joué beaucoup avec ce que j'ai trouvé son assez simple après avoir obtenu les dimensions de la hauteur de l'écran et la hauteur du bitmap et la largeur et en utilisant ce

bitmapWidth = (bitmapWidth * screenHeight)/bitmapHeight; 

je peux passer la nouvelle dimension à la hauteur bitmap

bitMapHeight = bitmap_Width; 

nouveau si donc c'est une mauvaise solution s'il vous plaît corrigez-moi mais essayé sur 2 téléphones différents et 2 tablettes différentes et cela fonctionne pour mon cas, voici mon appel de méthode complète;

private void setWallPaper() throws IOException { 
    int screenHeight; 
    int screenWidth; 
    Display display = getActivity().getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    screenHeight = size.y; 
    screenWidth = size.x; 
    Bitmap bitmap = ((BitmapDrawable) 
    WallpaperView.getDrawable()).getBitmap(); 
    int bitmapWidth = bitmap.getWidth(); 
    int bitmapHeight = bitmap.getHeight(); 
    bitmapWidth = (bitmapWidth * screenHeight)/bitmapHeight; 
    bitmapHeight = bitmapWidth; 
    WallpaperManager wallpaperManager = 
    WallpaperManager.getInstance(getActivity()); 
    wallpaperManager.setBitmap(bitmap.createScaledBitmap 
    (bitmap,bitmapWidth,bitmapHeight,true)); 
     Snackbar.make(getActivity().findViewById(R.id.wallLayout), 
    "Wallpaper Set "+"height"+ bitmapHeight+ "width"+bitmapWidth, 
    Snackbar.LENGTH_LONG) 
       .show(); 
    }