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 是平板的,手机的,需要调整下分辨和图片大小,有的显示不出来,但代码是成熟的代码
7.1 8.1 9.0 10.0 两个launcher之间切换,设置默认launcher
Android实现图标拖拽.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android 取消系统默认 launcher3的home属性,保证第三方的launcher正常使用.patch
9.0 10.0Launcher3修改默认的app图标和hotseat图标为圆角图标
Android中实现Launcher功能之添加快捷方式
android手把手教你开发launcher(AndroidStudio版) pdf文档
Android Launcher源码下载,PagedView,PagedViewIcon
android源码的Launcher详细解析,分析Launcher的运行机制
Launcher3升级变化:小部件变化 、 Go版本差异、支持自动生成Work文件夹 . UI客制化 :桌面布局 、布局配置 、预置图标 、图标客制化 、待机界面客制化、应用抽屉客制化 功能客制化 :桌面样式 、图标角标、动态图标 ...
Android-launcher源码全面分析 一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5...
1.适用android 盒子,1920*1080(密度240),1280*720(密度160),1280*720(密度213) 2,eclipse 代码 3,主页功能介绍(第一排,左边语音调起,右边时间,第二排,常用国外视频app,第三排所有apps,第四排设置,...
Android系统桌面Launcher3源码,可直接在Android Studio中编译。
Android项目高仿小米launcher(ZAKER)跨屏拖动item.rar
安卓Android源码——Android Launcher 源码修改可编译.zip
更改官方的Launcher3使得可以在Android Studio编译 原始地址,从5892520提交开始 最小sdk版本为16 Android 5.0 版本及以上可能会出现因为相同权限声明而不能安装的问题 如果你想要可以在Eclipse编译的版本,可以看...
andriod2.3修改Launcher让图标不显示在桌面或者主菜单中,4.0只有很少的区别
Android应用源码之Launcher2_源码
本文实例讲述了Android开发中Launcher3常见默认配置修改方法。分享给大家供大家参考,具体如下: Launcher概述 Launcher是开机完成后第一个启动的应用,用来展示应用列表和快捷方式、小部件等。Launcher作为第一个...
主要介绍了AndroidStudio替换项目图标ic_launcher操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧