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"旨在为平板和手机构建一个可自定义的启动器应用。由于...
7.1 8.1 9.0 10.0 两个launcher之间切换,设置默认launcher
在Android系统中,Launcher3是默认的主屏幕和应用程序抽屉管理器,它负责显示和管理手机上的应用快捷方式和小部件。随着Android版本的更新,界面设计也在不断进化,9.0和10.0版本引入了圆角图标的设计趋势,以提供...
在Android系统中,Launcher是用户与设备交互的主要入口,它是一个桌面应用,负责显示应用程序的图标、快捷方式以及小部件等。"安卓Launcher桌面相关-Android实现图标拖拽"这个压缩包文件似乎包含了一些关于如何在...
Android 取消系统默认 launcher3的home属性,保证第三方的launcher正常使用.patch
Android允许开发者创建自己的Launcher应用,可以替换掉系统默认的桌面应用。 知识点二:AndroidManifest.xml文件的作用 AndroidManifest.xml文件是Android应用程序的全局描述文件,它描述了应用的结构以及声明了...
在Android 2.3系统中,可以通过自定义Launcher应用来控制应用程序图标是否显示在桌面或主菜单中。这一操作对于定制化系统界面、提升用户体验等方面具有重要意义。尽管在Android 4.0系统中与2.3版本有所不同,但核心...
"安卓Android源码——Android Launcher 源码修改可编译.zip" 这个标题表明我们关注的是Android操作系统的源代码,特别是与启动器(Launcher)相关的部分。Launcher是用户与Android系统交互的主要界面,它管理应用...
Android Launcher 是 Android 操作系统中的桌面应用程序,负责管理桌面图标、widget 和其他桌面元素。下面我们将一步步指导您如何开发一个自己的 Launcher,並使其替代系统的默认 Launcher。 了解 Android ...
Android Studio提供了一个便捷的工具来替换项目的图标,这个过程涉及多个步骤,下面我们将详细介绍如何在Android Studio中进行图标更换,特别是针对`ic_launcher`图标的操作。 1. **启动Image Asset Studio** 首先...
在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建具有独特功能和视觉效果的组件。本Demo以“通过xml文件自定义View”为主题,旨在演示如何利用XML布局文件来定义一个自定义的View,并在...
**Android 12.0 Launcher 客制化详解** 在Android 12.0中,Launcher3作为系统启动器经历了显著的变化,为开发者提供了更多客制化选项,以满足不同用户的需求和喜好。以下是关于Launcher3升级变化以及客制化的详细...
其中,`Launcher3`是Android开源项目AOSP(Android Open Source Project)中的默认启动器实现。通过分析`Launcher3`的源码,我们可以深入理解Android系统桌面的工作原理,了解如何定制自己的启动器。 1. **项目结构...
在Android系统中,主启动器(Launcher)是用户与设备交互的核心组件,它负责展示应用图标、快捷方式以及壁纸等,使用户能够启动各种应用程序。然而,Android平台的开放性允许开发者创建次级启动器(Secondary ...
在Android系统中,Launcher是用户与设备交互的主要入口,它负责显示桌面、应用程序快捷方式以及小部件。在Android 6.0(Marshmallow)版本中,开发者对Launcher3进行了重大改进,其中包括引入了新的屏幕切换动画,...
Launcher2是Android早期版本中默认的桌面应用,它为用户提供了一个可视化的界面来启动其他应用程序、创建快捷方式和组织桌面图标。它的核心功能包括:显示应用抽屉、处理长按、拖放操作等。通过分析Launcher2的源码...
在Android系统中,启动器(Launcher)是用户界面的核心部分,它负责展示桌面图标、快捷方式以及应用程序抽屉等,而跨屏拖动则是提升用户体验的重要功能,允许用户在不同的屏幕之间自由移动应用图标或文件夹。...
Android Launcher 是 Android 系统中一个非常重要的组件,负责显示桌面程序和管理应用程序图标。了解 Launcher 的源码可以帮助我们更好地理解 Android 系统的设计思想和实现机制。本文将对 Launcher 的源码进行深入...
**Android 11 Launcher3 深度解析** Android 11中的Launcher3是系统启动器的主要组件,它是用户与设备交互的门户,负责显示应用图标、桌面壁纸、小部件等。Launcher3不仅承担着应用启动的任务,还管理着用户的主...
在Android 5.1版本中,Launcher3作为默认的启动器,具有简洁、高效的特性。下面我们将深入探讨Launcher3的一些关键知识点。 1. **启动器的职责**: - 启动器是用户与Android系统的交互入口,负责显示桌面图标、...