1

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

    bitmapWidth = (bitmapWidth * screenHeight) / bitmapHeight;

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

4

1 回答 1

0

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

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();
    }
于 2015-07-22T15:42:00.910 回答