gpt4 book ai didi

android - WallpaperManager suggestDesiredDimensions() 对三星手机没有影响

转载 作者:行者123 更新时间:2023-11-30 03:25:05 27 4
gpt4 key购买 nike

我有一个应用程序可以将墙纸应用到主屏幕,其中的图像与屏幕尺寸相匹配。这是我设置壁纸的代码:

WallpaperManager wallpaperManager = WallpaperManager.getInstance(MainActivity.this);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
try {
BitmapFactory.decodeResource(getResources(), wallpapersPagerAdapter.getWallpaperId(position), options);
wallpaperManager.suggestDesiredDimensions(options.outWidth, options.outHeight);

wallpaperManager.setResource(wallpapersPagerAdapter.getWallpaperId(position));
} catch (IOException e) {
Log.e(Constants.LOG_TAG, e.getMessage());
Toast.makeText(MainActivity.this, R.string.err_can_not_set_wallpaper, Toast.LENGTH_SHORT).show();
return;
}

它在大多数设备上都能完美运行,但 suggestDesiredDimensions() 对 galaxy s4 和 galaxy s3 完全没有影响(我想其他三星手机也会有同样的问题)。在此手机上,无论所需尺寸如何,图像都会缩放。

但我发现 Backgrounds HD 应用程序没有这个问题。所以我想知道如何在不裁剪的情况下在 galaxy s4(或 s3)上设置壁纸,假设我的壁纸实际尺寸为 1080x1920?

最佳答案

好吧,我使用 Set as Intent 修复了它。似乎无法在 TouchWiz 上设置尺寸。这是我的代码:

        Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
MimeTypeMap map = MimeTypeMap.getSingleton();

String mimeType = map.getMimeTypeFromExtension("jpg");
File file = new File(filePath);

Uri uri = Uri.fromFile(file);
intent.setDataAndType(uri, mimeType);
intent.putExtra("mimeType", mimeType);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.hideProgressDialog();
context.startActivityForResult(Intent.createChooser(intent, "Set as"),
Constants.REQUEST_CODE_SET_WALLPAPER);

关于android - WallpaperManager suggestDesiredDimensions() 对三星手机没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18362462/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com