壁纸在Android 4x及以上版本滚动

时间:2015-07-22 14:53:58

标签: android bitmap android-wallpaper

另一个壁纸问题,我是使用壁纸管理器设置它,但我发现壁纸不滚动,尝试不同的发射器,但同样的事情正在发生,经过大量的研究,我发现它的Android版本问题,没有人回答我的其他{{ 3}}所以我发现一个答案可以获得屏幕尺寸和android配置单元上的位图尺寸,然后相应地缩放位图。

    bitmapWidth = (bitmapWidth * screenHeight) / bitmapHeight;

这个工作!图像是滚动但图像是过度修正的,所以我使用这种方法,并使用屏幕高度和宽度以及位图的高度和宽度来尝试让我很好地坐在我想要的是在任何设备上完美缩放的图像并滚动适当的任何建议?

1 个答案:

答案 0 :(得分: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();
    }