2016-04-06 19 views
0

私はAndroidで壁紙アプリケーションを開発しており、私のアプリのスクロール可能な壁紙を設定する正しい方法を見つけることができます。さて、私のコードは、ビットマップから壁紙を設定することができますが、それは1ページに収まるように切り取られ、ちょうど1ページ(私はホーム画面で5ページを持っている)にとどまった。つまり、各ページのコンテンツは壁紙をスクロールできますが、壁紙はスクロールできませんでした。アンドロイド画面の電話でプログラム可能にスクロール可能な壁紙

スクロール可能な壁紙を設定したいと思います。私はインターネットからいくつかのコードを試しましたが、彼らは助けませんでした。皆さんは何か考えていますか?

setImage_Wallpaper.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       File file = imageLoader.getDiscCache().get(urldisplay); 
       Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath()); 
       WallpaperManager myWallpaperManager 
         = WallpaperManager.getInstance(mContext); 
       try { 
        myWallpaperManager.setBitmap(bitmap); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     }); 

そして私は、このコードから使用しますが、動作しません:

//get screen height 
Display display = getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    screenHeight = size.y; 

wallPaperBitmap= ... //your bitmap resource 

//adjust the aspect ratio of the Image 
//this is the main part 

int width = wallPaperBitmap.getWidth(); 
     width = (width * screenHeight)/wallPaperBitmap.getHeight(); 

//set the wallpaper 
//this may not be the most efficent way but it worked for me 

wallpaperManager.setBitmap(Bitmap.createScaledBitmap(wallPaperBitmap, width, height, true)); 

答えて

0

Postは古いですが、とにかく...あなたはこの

public static void setWallpaper(Context context) { 
    int wallpaperRId = getWallpaperImageRid(context); 

    if (wallpaperRId == 0) { 
     return; 
    } 

    Bitmap tempBmp = BitmapFactory.decodeResource(context.getResources(), wallpaperRId); 

    // get size 
    DisplayMetrics metrics = context.getResources().getDisplayMetrics(); 
    int width = metrics.widthPixels; 
    int height = metrics.heightPixels; 
    int area = width * height/1000; 

    width *= 2; 
    float scale = width/(float) tempBmp.getWidth(); 
    height = (int) (scale * tempBmp.getHeight()); 

    Bitmap bitmap = Bitmap.createScaledBitmap(tempBmp,width,height, true); 

    WallpaperManager wallpaperManager = WallpaperManager.getInstance(context); 
    wallpaperManager.setWallpaperOffsetSteps(1, 1); 
    wallpaperManager.suggestDesiredDimensions(width, height); 

    try { 
     wallpaperManager.setBitmap(bitmap); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
に似た何かを試すことができます
関連する問題