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

在android 4x及以上版本上滚动壁纸,android,bitmap,android-wallpaper,Android,Bitmap,Android Wallpaper,另一个墙纸问题,我用墙纸管理器设置它,但我发现墙纸没有滚动,尝试了不同的启动器,但同样的事情发生了,经过大量研究,我发现这是安卓版本的问题,没有人回答我的另一个问题,所以我找到了一个答案,在安卓hive上获取屏幕尺寸和位图尺寸,然后相应地缩放位图 bitmapWidth = (bitmapWidth * screenHeight) / bitmapHeight; 这管用!图像正在滚动,但图像已过度缩放,因此我使用此方法,并使用屏幕高度和宽度以及位图高度和宽度来尝试将其放置在合适的位置。

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

    bitmapWidth = (bitmapWidth * screenHeight) / bitmapHeight;

这管用!图像正在滚动,但图像已过度缩放,因此我使用此方法,并使用屏幕高度和宽度以及位图高度和宽度来尝试将其放置在合适的位置。我想要的是在任何设备上完美缩放图像,并正确滚动任何建议

因此,在玩了很多之后,我发现在获得屏幕高度、位图高度和宽度的尺寸并使用此

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

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

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

你的问题是什么?抱歉@holmes你的右边不清楚将编辑该问题,我希望墙纸正确缩放并滚动,我找到了一个解决方案,但请看看我上面链接的另一个问题你的问题是什么?抱歉@holmes你的右边不清楚将编辑该问题,我希望墙纸能够正确缩放并滚动,我找到了一个解决方案,但请看看我上面链接的其他问题