【问题标题】:Scrollable wallpaper android可滚动壁纸安卓
【发布时间】:2014-12-07 05:54:59
【问题描述】:

我正在 Android 中开发一个壁纸应用程序,我正在寻找一种为我的应用程序设置可滚动壁纸的正确方法。现在,我的代码可以从位图设置壁纸,但它被裁剪以适合一页并且只停留在一页上(我在主屏幕上有 5 页)。这意味着每个页面中的内容可以滚动浏览墙纸,但墙纸不能滚动。

我想设置一个可滚动的壁纸。我尝试了一些来自互联网的代码,但它们没有帮助。 你们有什么想法吗?

这是我的代码

WallpaperManager wm = WallpaperManager.getInstance(mActivity.getContext());
    try {
        wm.setBitmap(mCropImageView.getCroppedImage());
    } catch (IOException e) {
        e.printStackTrace();
    }

【问题讨论】:

    标签: android wallpaper


    【解决方案1】:

    试试这个,它在 api>11 上对我有用

    //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));
    

    【讨论】:

      【解决方案2】:

      我希望在我的应用程序中有一个可滚动的壁纸作为背景。 (主屏幕更换应用)

      我的应用设置壁纸(可以滚动)。

      但是,当搜索scrollable wallpaper android stackoverflow 时,这个问题是谷歌上的第一个 SO 帖子。

      所以我决定改为回答这个问题。

      我使用 kotlin 制作了一个位于 here 的演示应用

      它使用this方法滚动壁纸。

      其中使用WallpaperManager.setWallpaperOffsets

      addOnPageChangeListener(object : ViewPager.OnPageChangeListener{
          override fun onPageScrollStateChanged(state: Int) {}
      
          override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
              val xOffset = (position + positionOffset) / (pageModels.size - 1)
              val wallpaperManager = WallpaperManager.getInstance(applicationContext)
              wallpaperManager.setWallpaperOffsets(viewPager.windowToken, xOffset, 0.0f)
          }
      }
      

      还有我制作的应用程序的演示video

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 2012-03-28
        相关资源
        最近更新 更多