首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可滚动壁纸android

可滚动壁纸android
EN

Stack Overflow用户
提问于 2014-12-07 05:54:59
回答 3查看 2K关注 0票数 0

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

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

这是我的密码

代码语言:javascript
复制
WallpaperManager wm = WallpaperManager.getInstance(mActivity.getContext());
    try {
        wm.setBitmap(mCropImageView.getCroppedImage());
    } catch (IOException e) {
        e.printStackTrace();
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-03 20:01:08

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

代码语言:javascript
复制
//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));
票数 3
EN

Stack Overflow用户

发布于 2019-07-09 21:04:06

我想要一个可滚动的壁纸我的应用程序作为背景。(主屏幕替换应用程序)

而不是设置了一个壁纸(可以滚动)的应用程序。

但这个问题是谷歌在搜索scrollable wallpaper android stackoverflow时的第一个问题。

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

我用kotlin制作了一个位于这里的演示应用程序

并采用方法对壁纸进行滚动。

它使用WallpaperManager.setWallpaperOffsets

代码语言:javascript
复制
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)
    }
}

以及我制作的视频应用程序的演示

票数 0
EN

Stack Overflow用户

发布于 2022-10-29 06:31:59

试试这个,起作用了。

代码语言:javascript
复制
final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
wallpaperManager.setWallpaperOffsetSteps(0F, 0F);


ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(this, pageCount);
viewPager2.setAdapter(viewPagerAdapter);

viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        float xOffset = (position + positionOffset) / (pageCount - 1);
        wallpaperManager.setWallpaperOffsets(viewPager2.getWindowToken(), xOffset, 0.0f);
        super.onPageScrolled(position, positionOffset, positionOffsetPixels);
    }

    @Override
    public void onPageScrollStateChanged(int state) {
        super.onPageScrollStateChanged(state);
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27340067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档