0

我正在开发设置为墙纸选项的墙纸应用程序。我正在将所有图像从位于 sdcard 上的照片目录中显示到网格视图中。当用户单击任何图像缩略图时,它会打开全屏视图,我已将其设置为墙纸选项。一切正常。现在的问题是我想提供裁剪功能,可以选择在全屏视图中设置图像而不进行缩放或拉伸。我尝试了很多代码,但没有按照我的预期工作。我在点击事件上调用以下函数。下面是我尝试过的代码,但它会拉伸图像。

enter code here
private void setWallPaper() {
    WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
    try {
        //set for full screen wallpaper
        DisplayMetrics metrics = new DisplayMetrics(); 
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        int fullHeight = metrics.heightPixels; 
        int fullWidth = metrics.widthPixels;
        Bitmap bitmapResized = Bitmap.createScaledBitmap(imageBitmap, fullWidth, fullHeight,true);
        wallpaperManager.setBitmap(bitmapResized);

        //wallpaperManager.setBitmap(imageBitmap);
        Toast toast = Toast.makeText(this, "Set wallpaper successfully!", Toast.LENGTH_LONG);
        toast.show();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

有没有办法绕过这个裁剪功能并将图像设置为全屏?请在这方面帮助我。提前致谢。

4

1 回答 1

0

据我所知,您必须为该级别的控制创建自己的动态壁纸服务。这里有一个详尽的例子。创建您自己的服务将允许您添加其他功能,如触摸滚动等(尽管您必须为通过 TouchWiz 层禁用此功能的三星设备制定一些解决方法)。这似乎很痛苦,但设置基本的动态壁纸服务并不需要那么长时间。

于 2015-01-05T09:32:50.457 回答