android - 将设备壁纸设置为渐变背景(Android Studio)
问题描述
我在drawable文件夹中创建了一个渐变drawable。它是 xml 文件中的形状。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle" >
<gradient
android:angle="45"
android:centerColor="@color/centerColor"
android:endColor="@color/endColor"
android:startColor="@color/startColor" />
</shape>
</item>
</selector>
当单击某个按钮时,我正在尝试将渐变设置为使用该应用程序的设备的墙纸。这甚至可能吗?
提前致谢。:)
Java 代码:
public void onClick(View v) {
// WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext());
InputStream is = getResources().openRawResource(R.raw.gradient);
Bitmap b = BitmapFactory.decodeStream(is);
try {
// myWallpaperManager.setBitmap(+ R.drawable.gradient);
getApplicationContext().setWallpaper(b);
Toast.makeText(getApplicationContext(),"Wallpaper updated", Toast.LENGTH_SHORT ).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
解决方案
这甚至可能吗?
对的,这是可能的。
在您的
manifest
.
在您的 res 文件夹中创建 raw 文件夹,并将该渐变添加到 raw 文件夹中
并在您的应用程序中使用此代码。
WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); try { myWallpaperManager.setResource(R.raw.your_gradient_drawable); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
推荐阅读
- python - Django Form 不更新模型中的数据
- spartacus-storefront - Spartacus 4 - 如何扩展默认的店面主题?
- excel - Excel - 结合 SUMPRODUCT
- java - 如何从命令行杀死 Java 中的死锁线程?
- python - 一次运行 ray tune 1 次迭代
- javascript - 使用 javascript 将 favico 图像从数据库显示到 html 显示“未定义”
- flutter - 如何从 Flutter 中的图像中获取 RGB 值?
- javascript - 为什么我不能在带有 HTML img 标签的 webpack 中嵌入图像?
- python - Python 简单的联系人管理器应用程序。删除联系人功能问题
- sass - 如何在保持嵌套的同时渲染 SCSS?