`
007007jing
  • 浏览: 42935 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

android2.3 api demo 学习系列(15)--App/Activity/SetWallpaper

阅读更多

本次示例我们整合了apidemo里面的两个demo:SetWallpaper and Wallpaper

demo:SetWallpaper 主要是获取用户系统的壁纸,并随机颜色过滤后再设置为壁纸

demo:Wallpaper 主要展示使用壁纸作为activity背景的使用(使用用户设定的壁纸 request api level 10 or lower)

下面我们开始

1、 定义layout文件:一个imageview 和三个按钮

 

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/app_activity_wallpaper_imageview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/app_activity_wallpaper_randomize_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:text="@string/app_activity_set_wallpaper_colorfilter_text" />

        <Button
            android:id="@+id/app_activity_wallpaper_setwallpaper_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:text="@string/app_activity_set_wallpaper_setwallpaper_text" />
        <Button
            android:id="@+id/app_activity_wallpaper_translucent_background_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:text="@string/app_activity_set_wallpaper_translucent_background_text" />
    </LinearLayout>

</FrameLayout>

 

 2、随机颜色过滤壁纸和设置壁纸

 

final static private int[] mColors =
        {Color.BLUE, Color.GREEN, Color.RED, Color.LTGRAY, Color.MAGENTA, Color.CYAN,
                Color.YELLOW, Color.WHITE};
final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
final Drawable wallpaperDrawable = wallpaperManager.getDrawable();
final ImageView imageView = (ImageView) findViewById(R.id.app_activity_wallpaper_imageview);
imageView.setDrawingCacheEnabled(true);
imageView.setImageDrawable(wallpaperDrawable);
		
Button randomColorFilterButton = (Button) findViewById(R.id.app_activity_wallpaper_randomize_btn);
randomColorFilterButton.setOnClickListener( new OnClickListener(){
	@Override
	public void onClick(View v) {
		int iColor = (int) Math.floor(Math.random() * mColors.length);
		wallpaperDrawable.setColorFilter(mColors[iColor], PorterDuff.Mode.MULTIPLY);
		imageView.setImageDrawable(wallpaperDrawable);
		imageView.invalidate();
	}
});
Button setWallpaperButton = (Button) findViewById(R.id.app_activity_wallpaper_setwallpaper_btn);
    setWallpaperButton.setOnClickListener(new OnClickListener() {
		@Override
		public void onClick(View v) {
			try {
				wallpaperManager.setBitmap(imageView.getDrawingCache());
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				finish();
			}
		}
});

 这里需要注意一下在manifest中定义设置壁纸的权限

 

<uses-permission android:name="android.permission.SET_WALLPAPER" />

 

 3、壁纸作为activity背景的使用:只要是使用了android的提供的Theme.Wallpaper主题(使用该主题要求api的版本最小为10)

 

<!-- Theme.Wallpaper request API level 10 or lower -->
    <style name="Theme.Wallpaper" parent="android:style/Theme.Wallpaper">
        <item name="android:colorForeground">#fff</item>
    </style>

 

 而后在manifest定义activity时设置上定义的主题Theme.Wallpaper

 

<activity android:name=".app.activity.TranslucentBackground"
                android:label="@string/app_activity_set_wallpaper_translucent_background_lable"
                android:theme="@style/Theme.Wallpaper">
  </activity>

 

 仅此而已就实现了想要的效果,上图:

原图

颜色过滤


设置为壁纸


设置为activity的背景


 

 

 

  • 大小: 446.6 KB
  • 大小: 230.7 KB
  • 大小: 247.8 KB
  • 大小: 230.8 KB
分享到:
评论

相关推荐

    android api demo讲解

    ##### (15) App-&gt;Activity-&gt;SetWallpaper - **目的**:演示如何设置壁纸。 - **主要内容**: - 使用WallpaperManager类设置壁纸。 - 处理权限申请。 ##### (16) App-&gt;Activity-&gt;Translucent - **目的**:了解如何...

    Android_api_demo

    ##### (15) App -&gt; Activity -&gt; SetWallpaper - **概述**:介绍了如何为设备设置壁纸。 - **技术点**: - **WallpaperManager**:使用 WallpaperManager 类设置壁纸。 ##### (16) App -&gt; Activity -&gt; Translucent ...

    android API-DEMOS中文解析文档

    本文档是对Android官方提供的一系列API演示项目的深入分析,旨在帮助开发者更好地理解并掌握Android平台的各项功能和技术。 ### 一、概述 #### 1.1 Android API-DEMOS简介 Android API-DEMOS是Google为开发者提供...

    SetWallPaper

    考虑到Android设备的多样性和版本差异,SetWallPaper可能包含了针对不同API级别的兼容性代码,以确保在多个Android版本上都能正常运行。 10. **版本控制和构建工具** 开发过程中,源码可能使用Git进行版本控制,...

    android 置换手机背景 Gallery与setWallpaper

    在这个过程中,开发者通常需要利用Android提供的API来实现这一功能。下面我们将深入探讨这个主题。 首先,Android的Gallery是一个用于浏览和管理设备上图片、视频等媒体文件的应用。用户可以从这里选取自己喜欢的...

    Android-基于Kotlin开发的一款超简单的图片浏览设置壁纸图片下载的App。

    本项目"基于Kotlin开发的一款超简单的图片浏览设置壁纸图片下载的App"是Android开发的一个实例,充分展示了Kotlin在移动应用中的强大能力。 首先,我们要理解Kotlin的基础特性。Kotlin是一种静态类型的编程语言,它...

    SetWallPaper.zip

    而`SetWallPaper`和`main`文件则负责协调各个组件的交互,以及调用Windows API设置桌面壁纸。 至于Windows API的使用,Qt本身提供了跨平台的能力,但在特定平台(如Windows)上,可能需要直接调用操作系统API来访问...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色...

    安卓设置壁纸Demo源码 .zip

    这个压缩包包含了名为"SetWallpaper"的项目或者类文件,是学习和理解Android系统壁纸设置机制的一个宝贵资源。 在Android开发中,设置壁纸涉及到对系统的深度操作,需要理解Android的壁纸服务、权限管理和用户界面...

    Android-Android设置壁纸兼容国产ROM调用系统自带设置壁纸方法

    在Android开发中,设置壁纸是一项常见的功能,但考虑到国内各种定制化的ROM(如MIUI、EMUI、...此外,SetWallpaper-master 这个项目可能包含了一个示例工程,可以作为参考,研究其源码以了解更多细节和具体实现。

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色...

    Android 设置手机屏幕壁纸(桌面背景).rar

    Android 设置手机屏幕壁纸,不能就是大家熟悉的桌面背景,点击按钮,即可更换手机背景图片,整个功能的实现,... Sample8_12_Activity.this.setWallpaper(bm);//将该图片设置为手机背景图,需要添加设置手机背景图权限

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色...

    Google Android SDK开发范例大全的目录

    2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色...

    命令行工具setwallpaper设置桌面壁纸

    命令行工具setwallpaper 可以将指定图片设置为桌面壁纸,支持jpg、bmp等格式 方便批处理、vbs调用

    android 壁纸系列 小猪佩奇

    这个"android 壁纸系列 小猪佩奇"项目正是为了满足这样的需求,它提供了一系列精心设计的小猪佩奇高清壁纸,适合用户设置为手机壁纸,给用户带来乐趣和个性化体验。 首先,我们要了解Android系统如何处理壁纸。在...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable...

    Google Android sdk 开发范例大全 部分章节代码

    2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色...

Global site tag (gtag.js) - Google Analytics