Android从SDCard中取得图片并设置为桌面背景

1、 把背景图片push到SDCard中
adb push MM-320x480.png /sdcard/
确认是否已经存在了,可以到SDCard看一下:
adb shell
cd sdcard
ls
可以看到刚才上传的图片:
2、编写Activity程序
复制代码
public static final String TAG = "WallpaperActivity";

/**
* 背景图片名称
*/
private static final String FILE_NAME = "MM-320x480.png";

/**
*
@see android.app.Activity#onCreate(android.os.Bundle)
*/
public void onCreate(Bundle cycle) {
super.onCreate(cycle);
super.setContentView(R.layout.wallpaper);

// 取得背景图片
Bitmap wallpaper = this.getWallpager();

// 设置桌面背景
this.putWallpaper(wallpaper);
}

/**
* 取得SDCard中的背景图片
*/
private Bitmap getWallpager() {
// SDCard的路径,也就是“/sdcard/”
File root = Environment.getExternalStorageDirectory();
// MM图片
File wall = new File(root, FILE_NAME);
// MM图片路径
String path = wall.getAbsolutePath();

Log.d(TAG,
"MM文件路径为:" + path);

return BitmapFactory.decodeFile(path);
}

/**
* 设置桌面背景
*/
private void putWallpaper(Bitmap bitmap) {
try {
WallpaperManager wallpaperManager
= WallpaperManager.getInstance(this);
wallpaperManager.setBitmap(bitmap);
}
catch (IOException e) {
String msg
= "设置桌面背景发生异常:" + e.getLocalizedMessage();
Log.e(TAG,
"设置桌面背景发生异常!", e);
Toast.makeText(
this, msg, Toast.LENGTH_LONG).show();
}
}
复制代码
3、增加权限
    在AndroidManifest.xml文件中增加设置桌面背景权限:
<!-- 设置桌面背景的权限 -->
<uses-permission android:name="android.permission.SET_WALLPAPER" />
4、运行程序
    运行程序,再回到桌面,背景已经改变了。
posted @   老牛啊  阅读(7684)  评论(1编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)

奔跑的蜗牛 博客:https://ntopic.cn

点击右上角即可分享
微信分享提示