首页 文章

设置壁纸而不裁剪

提问于
浏览
0

我正在开发壁纸应用程序与设置为壁纸选项 . 我将所有图像显示在位于SD卡上的照片目录的网格视图中 . 当用户点击任何图像缩略图时,它会打开到全屏幕视图,其中我提供了设置为壁纸选项 . 一切都很好 . 现在的问题是,我想提供裁剪功能,可选择在全屏视图中设置图像而无需缩放或拉伸 . 我尝试了很多代码,但它没有按照我的期望工作 . 我在click事件上调用以下函数 . 以下是我尝试过的代码,但它会拉伸图像 .

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

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

1 回答

  • 0

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

相关问题