【问题标题】:wallpaper scrolling on android 4x and above在 android 4x 及更高版本上滚动壁纸
【发布时间】:2015-07-22 14:53:58
【问题描述】:

另一个壁纸问题,我正在使用壁纸管理器设置它,但我发现壁纸不滚动,尝试了不同的启动器但同样的事情正在发生,经过大量研究我发现它是一个 android 版本问题,没有人回答我的另一个 @987654321 @ 所以我找到了一个答案,它可以获取 android hive 上的屏幕尺寸和位图尺寸,然后相应地缩放位图。

    bitmapWidth = (bitmapWidth * screenHeight) / bitmapHeight;

这行得通!图像正在滚动,但图像过度拉伸,所以我使用这种方法并使用屏幕高度和宽度以及位图高度和宽度来尝试让它坐得很好我想要的是图像可以在任何设备上完美缩放并滚动有什么建议吗?

【问题讨论】:

  • 你有什么问题?
  • 抱歉@holmes 你的权利不清楚会编辑问题,我希望壁纸能够正确缩放并滚动,我找到了解决方案,但请看看我上面链接的其他问题

标签: android bitmap android-wallpaper


【解决方案1】:

所以在玩了很多之后,我发现它在获得屏幕高度、位图高度和宽度的尺寸并使用它之后相当简单

bitmapWidth = (bitmapWidth * screenHeight) / bitmapHeight;

我可以将新维度传递给位图高度

bitMapHeight = bitmap_Width;

我是新人,所以如果这是一个不好的解决方案,请纠正我,但尝试了 2 部不同的手机和 2 部不同的平板电脑,它适用于我的情况,这是我的完整方法调用;

    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();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    相关资源
    最近更新 更多