`
zengxx1989
  • 浏览: 300285 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

android解析自定义XML,launcher替换默认图标

阅读更多

1 在attr中定义自己的样式   

 <declare-styleable name="ExtentalAPP">
        <attr name="ex_className" format="string" />
        <attr name="ex_packageName" format="string" />
        <attr name="ex_title" format="string" />
        <attr name="ex_icon" format="reference" />
    </declare-styleable>

 

 

2.定义自己的xml属性,注意com.android.test 为包名,launcher 为前缀
<applications xmlns:launcher="http://schemas.android.com/apk/res/com.android.test" >

    <application
        launcher:ex_className="com.android.browser.BrowserActivity"
        launcher:ex_icon="@drawable/samsung_browser_icon"
        launcher:ex_packageName="com.android.browser"
        launcher:ex_title="@string/extena_browser_title" />

3 解析 XML

 

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.AttributeSet;
import android.util.Xml;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ExtentalApp extends Activity {

    String className;
    Drawable icon;
    String packageName;
    String title;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        loadExternalIconforXml();
    }

    public Map<String, ExtentalApp> loadExternalIconforXml() {
        Map<String, ExtentalApp> mapApp= new HashMap<String, ExtentalApp>();
        XmlPullParser xmlParser = getResources().getXml(R.xml.external_application);
        AttributeSet set = Xml.asAttributeSet(xmlParser);
        try {
            int eventType = xmlParser.getEventType();
            while (eventType != XmlResourceParser.END_DOCUMENT) {
                if (eventType == XmlResourceParser.START_TAG) {
                    switch (xmlParser.getDepth()) {
                        case 1:
                            break;
                        case 2:
                            TypedArray ta =  this.obtainStyledAttributes(set, R.styleable.ExtentalAPP);
                            ExtentalApp app = new ExtentalApp();
                            app.className = ta.getString(R.styleable.ExtentalAPP_ex_className);
                            app.packageName = ta.getString(R.styleable.ExtentalAPP_ex_packageName);
                            app.title = ta.getString(R.styleable.ExtentalAPP_ex_title);
                            app.icon = ta.getDrawable(R.styleable.ExtentalAPP_ex_icon);
                            mapApp.put(app.className, app);
                            break; 
                        default:
                            break;
                    }
                    
                }
                eventType = xmlParser.next();
            }

        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException  ioe){
            ioe.printStackTrace();
        }
        return mapApp;
    }
}

  

 

分享到:
评论

相关推荐

    android 自定义 模仿Launcher

    在Android开发中,自定义Launcher是一项常见的需求,它允许开发者创建独特的用户界面,提供与原生系统不同的启动器体验。本项目"android 自定义 模仿Launcher"旨在为平板和手机构建一个可自定义的启动器应用。由于...

    anroid 7.1 8.1 9.0 10.0 两个launcher切换 设置默认launcher

    7.1 8.1 9.0 10.0 两个launcher之间切换,设置默认launcher

    9.0 10.0Launcher3设置app图标和hotseat图标为圆角图标

    在Android系统中,Launcher3是默认的主屏幕和应用程序抽屉管理器,它负责显示和管理手机上的应用快捷方式和小部件。随着Android版本的更新,界面设计也在不断进化,9.0和10.0版本引入了圆角图标的设计趋势,以提供...

    安卓Launcher桌面相关-Android实现图标拖拽.rar

    在Android系统中,Launcher是用户与设备交互的主要入口,它是一个桌面应用,负责显示应用程序的图标、快捷方式以及小部件等。"安卓Launcher桌面相关-Android实现图标拖拽"这个压缩包文件似乎包含了一些关于如何在...

    Android 取消系统默认 launcher3的home属性,保证第三方的launcher正常使用.patch

    Android 取消系统默认 launcher3的home属性,保证第三方的launcher正常使用.patch

    android手把手教你开发launcher(AndroidStudio版)

    Android允许开发者创建自己的Launcher应用,可以替换掉系统默认的桌面应用。 知识点二:AndroidManifest.xml文件的作用 AndroidManifest.xml文件是Android应用程序的全局描述文件,它描述了应用的结构以及声明了...

    修改Launcher让图标不显示在桌面或者主菜单中

    在Android 2.3系统中,可以通过自定义Launcher应用来控制应用程序图标是否显示在桌面或主菜单中。这一操作对于定制化系统界面、提升用户体验等方面具有重要意义。尽管在Android 4.0系统中与2.3版本有所不同,但核心...

    安卓Android源码——Android Launcher 源码修改可编译.zip

    "安卓Android源码——Android Launcher 源码修改可编译.zip" 这个标题表明我们关注的是Android操作系统的源代码,特别是与启动器(Launcher)相关的部分。Launcher是用户与Android系统交互的主要界面,它管理应用...

    android手把手教你开发launcher.pdf

    Android Launcher 是 Android 操作系统中的桌面应用程序,负责管理桌面图标、widget 和其他桌面元素。下面我们将一步步指导您如何开发一个自己的 Launcher,並使其替代系统的默认 Launcher。 了解 Android ...

    AndroidStudio替换项目图标ic_launcher操作

    Android Studio提供了一个便捷的工具来替换项目的图标,这个过程涉及多个步骤,下面我们将详细介绍如何在Android Studio中进行图标更换,特别是针对`ic_launcher`图标的操作。 1. **启动Image Asset Studio** 首先...

    通过xml文件自定义view的一个Demo

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建具有独特功能和视觉效果的组件。本Demo以“通过xml文件自定义View”为主题,旨在演示如何利用XML布局文件来定义一个自定义的View,并在...

    Android 12.0 Launcher 客制化指导手册.pdf

    **Android 12.0 Launcher 客制化详解** 在Android 12.0中,Launcher3作为系统启动器经历了显著的变化,为开发者提供了更多客制化选项,以满足不同用户的需求和喜好。以下是关于Launcher3升级变化以及客制化的详细...

    Android Launcher3源码

    其中,`Launcher3`是Android开源项目AOSP(Android Open Source Project)中的默认启动器实现。通过分析`Launcher3`的源码,我们可以深入理解Android系统桌面的工作原理,了解如何定制自己的启动器。 1. **项目结构...

    Android SecondayLauncher 桌面模式launcher sample

    在Android系统中,主启动器(Launcher)是用户与设备交互的核心组件,它负责展示应用图标、快捷方式以及壁纸等,使用户能够启动各种应用程序。然而,Android平台的开放性允许开发者创建次级启动器(Secondary ...

    Android 6.0 Launcher3 增加屏幕切换动画

    在Android系统中,Launcher是用户与设备交互的主要入口,它负责显示桌面、应用程序快捷方式以及小部件。在Android 6.0(Marshmallow)版本中,开发者对Launcher3进行了重大改进,其中包括引入了新的屏幕切换动画,...

    Android应用源码之Launcher2_源码.zip

    Launcher2是Android早期版本中默认的桌面应用,它为用户提供了一个可视化的界面来启动其他应用程序、创建快捷方式和组织桌面图标。它的核心功能包括:显示应用抽屉、处理长按、拖放操作等。通过分析Launcher2的源码...

    Android项目高仿小米launcher(ZAKER)跨屏拖动item.rar

    在Android系统中,启动器(Launcher)是用户界面的核心部分,它负责展示桌面图标、快捷方式以及应用程序抽屉等,而跨屏拖动则是提升用户体验的重要功能,允许用户在不同的屏幕之间自由移动应用图标或文件夹。...

    android Launcher源码详解

    Android Launcher 是 Android 系统中一个非常重要的组件,负责显示桌面程序和管理应用程序图标。了解 Launcher 的源码可以帮助我们更好地理解 Android 系统的设计思想和实现机制。本文将对 Launcher 的源码进行深入...

    Android11 Launcher3

    **Android 11 Launcher3 深度解析** Android 11中的Launcher3是系统启动器的主要组件,它是用户与设备交互的门户,负责显示应用图标、桌面壁纸、小部件等。Launcher3不仅承担着应用启动的任务,还管理着用户的主...

    Launcher3_android原生launcher_

    在Android 5.1版本中,Launcher3作为默认的启动器,具有简洁、高效的特性。下面我们将深入探讨Launcher3的一些关键知识点。 1. **启动器的职责**: - 启动器是用户与Android系统的交互入口,负责显示桌面图标、...

Global site tag (gtag.js) - Google Analytics