android wallpaper

作者: 众少成多积小致巨 | 来源:发表于2019-08-14 21:55 被阅读0次

静态壁纸

WallpaperManager基本使用步骤

使用权限: <uses-permission android:name="android.permission.SET_WALLPAPER"/>

1、获取对象

public static WallpaperManager getInstance (Context context)

2、进行判断

是否支持

public boolean isWallpaperSupported ()

是否可设置

public boolean isSetWallpaperAllowed ()

3、获取或者设置

setBitmap(Bitmap bitmap):将壁纸设置为bitmap所代表的位图

setResource(int resid):将壁纸设置为resid资源所代表的图片

setStream(InputStream data):将壁纸设置为data数据所代表的图片

getDrawable():获得当前系统壁纸,如果没有设置壁纸,则返回系统默认壁纸

getWallpaperInfo():加入当前壁纸是动态壁纸,返回动态壁纸信息

peekDrawable():获得当前系统壁纸,如果没设置壁纸的话返回null

其它方法

clear():清除壁纸,设置回系统默认的壁纸

getDesiredMinimumHeight():最小壁纸高度

getDesiredMinimumWidth():最小壁纸宽度

动态壁纸

启动动态壁纸

val intent = Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER)

intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, ComponentName(this, Test::class.java!!))

startActivity(intent)

Test是WallpaperService的实现类

WallpaperService

name为service, resource为资源,可以使用默认资源如下图:

service具体配置代码

<service android:name=".Test"

    android:permission="android.permission.BIND_WALLPAPER">

    <intent-filter>

        <action android:name="android.service.wallpaper.WallpaperService" />

    </intent-filter>

    <meta-data android:name="android.service.wallpaper"

        android:resource="@xml/livepaper" />

</service>

xml资源具体代码

<?xml version="1.0" encoding="utf-8"?>

<wallpaper xmlns:android="http://schemas.android.com/apk/res/android"

          android:thumbnail="@mipmap/ic_launcher"

/>

service配置

关键是返回的 WallpaperService.Engine对象用来绘制壁纸

方法

WallpaperService.Engine

个人觉得动态壁纸常用几个方法

onSurfaceCreated(SurfaceHolder holder):重写,获取holder用来绘制

onSurfaceDestroyed(SurfaceHolder holder):重写,销毁,取消绘制

onVisibilityChanged(boolean visible): 重写,可见时进行绘制操作,不可见暂停绘制操作

onCreate(SurfaceHolder surfaceHolder) : 重写,设置触摸事件,setTouchEventsEnabled(true)

onTouchEvent(MotionEvent event): 重写,事件处理

onDestroy(): 所有的销毁动作

Engin重点处理,绘制过程,有可能需要事件处理

相关文章

网友评论

    本文标题:android wallpaper

    本文链接:https://www.haomeiwen.com/subject/ljkojctx.html