Android手机桌面

作者: 程序员丶星霖 | 来源:发表于2017-04-01 18:56 被阅读289次

    Android手机桌面

    Android提供了一个桌面(用户启动后第一次看到的界面)。手机桌面的作用类似于PC的桌面,通常用于放置一些常用的程序和功能。

    在Android桌面上首先看到的壁纸(手机桌面上的图片),还可以看到手机桌面上规则排列的多个图标,这些图标就是Android桌面组件,分别代表快捷方式桌面控件;,每个快捷方式只占用桌面的一个摆放位置;桌面控件可以很大,一个桌面空间可以占据多个摆放位置。

    管理手机桌面

    Android系统允许普通用户动态地添加、删除桌面组件。

    1.删除桌面组件

    删除Android桌面组件的步骤如下:

    1. 在屏幕上长按指定组件,直到桌面上方出现“删除”图标。
    2. 将指定组件拖到桌面上方的“删除”图标上。

    2.添加桌面组件

    给Android桌面添加快捷方式的步骤如下:

    1. 进入手机的程序列表界面,长按需要添加快捷方式的程序,此时可以看到程序图标会自动切换到桌面。
    2. 拖动该程序图标,将它放到指定位置即可。

    为Android桌面添加桌面控件的步骤如下:

    1. 长按手机桌面,然后单击屏幕右下角的“WIDGETS”按钮,进入Widget列表界面。
    2. 长按需要添加的桌面控件,此时桌面控件自动切换到桌面。
    3. 拖动该桌面控件,将其放到指定位置即可。
    4. 注意:不同手机操作稍有不同。

    改变手机壁纸

    Android允许使用WallpaperManager来改变手机壁纸,其方法如下所示:

    • setBitmap(Bitmap bitmap):将壁纸设置为bitmap所代表的位图。
    • setResource(int resid):将壁纸设置为resid资源所代表的图片。
    • setStream(InputStream data):将壁纸设置为data数据所代表的图片。

    开发动态壁纸

    动态壁纸,就是指手机桌面不再是简单的图片,而是运行中的动画,这个动画是由程序实时绘制的。
    在Android应用中开发动态壁纸的步骤如下:

    1. 开发一个子类继承WallpaperService基类。
    2. 继承WallpaperService基类时必须重写onCreateEngine()方法,该方法返回WallpaperService.Engine子类对象。
    3. 我们需要实现WallpaperService.Engine子类,并重写其中的public void onVisibilityChanged(boolean visible)public void onOffsetsChanged()方法。

    定义好Service类之后,需要在AndroidManifest.xml文件中配置如下两项:

    • 指定运行状态壁纸,需要android.permission.BIND_WALLPAPER权限。
    • 为动态壁纸指定meta-data配置。

    通过程序添加快捷方式

    在程序中把一个软件的快捷方式添加到桌面上,只需要如下三步即可:

    1. 创建一个添加快捷方式的Intent,该Intent的Action属性值应该为com.android.launcher.action.INSTALL_SHORTCUT
    2. 通过为该Intent添加Extra属性来设置快捷方式的标题、图标及快捷方式对应启动程序。
    3. 调用sendBroadcast()方法发送广播即可添加快捷方式。

    管理桌面控件

    桌面控件,就是指能直接显示在Android系统桌面上的小程序。

    开发桌面控件

    桌面控件是通过BroadcastReceiver的形式来进行控制的,因此每个桌面控件都对应一个BroadcastReceiver。

    开发桌面控件,我们只需要开发一个继承AppWidgetProvider的子类,并重写APPWidgetProvider不同状态的生命周期方法即可。APPWidgetProvider里提供了如下4个不同的生命周期方法:

    • onUpdate():负责更新桌面控件的方法;实现桌面控件通常会考虑重写该方法。
    • onDelete():当一个或多个桌面控件被删除时回调该方法。
    • onEnabled():当接收到ACTION_APPWIDGET_ENABLED Broadcast时回调该方法。
    • onDisabled():当接收到ACTION_APPWIDGET_DISABLED Broadcast时回调该方法。

    开发桌面控件只需要定义一个APPWidgetProvider的子类,并重写它的onUpdate()方法即可。重写该方法按如下步骤进行:

    1. 创建一个RemoteViews对象,创建该对象时可以指定加载指定的界面布局文件。
    2. 如果需要改变上一步所加载的界面布局文件的内容,则可通过RemoteViews对象进行修改。
    3. 创建一个ComponentName对象。
    4. 调用APPWidgetManager更新桌面控件。

    显示带数据集的桌面控件

    Android为RemoteViews提供了如下方法:

    • setRemoteAdapter(int viewId,Intent intent):该方法可以使用Intent更新RemoteViews中viewId对应的组件。

    上面方法的Intent参数应该封装一个RemoteViewsService参数,该参数的主要作用是为RemoteViews中viewId对应的组件提供列表项。

    好的,到此为止。

    我的微信公众号.jpg

    相关文章

      网友评论

        本文标题:Android手机桌面

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