- 浏览: 2159863 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
运行效果:
没有安装顺序,先安装皮肤后安装主程序完全可以。
安装成功之后在程序里面找不皮肤1/2/3启动文件,因为皮肤只能在主程序中使用。在卸载里面能看到安装上的皮肤,可以卸载掉。
好了来看下主要代码:
其它请下载附件查看。
没有安装顺序,先安装皮肤后安装主程序完全可以。
安装成功之后在程序里面找不皮肤1/2/3启动文件,因为皮肤只能在主程序中使用。在卸载里面能看到安装上的皮肤,可以卸载掉。
好了来看下主要代码:
package com.iaiai; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import android.app.Activity; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; /** * * <p> * Title: MainActivity.java * </p> * <p> * E-Mail: 176291935@qq.com * </p> * <p> * QQ: 176291935 * </p> * <p> * Http: iaiai.iteye.com * </p> * <p> * Create time: 2011-10-18 * </p> * * @author 丸子 * @version 0.0.1 */ public class MainActivity extends Activity { private ArrayList<PackageInfo> getAllSkin() { ArrayList<PackageInfo> skinList = new ArrayList<PackageInfo>(); List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); for (PackageInfo p : packs) { if (isSkinPackage(p.packageName)) { skinList.add(p); } } return skinList; } private boolean isSkinPackage(String packageName) { String rex = "com.iaiai\\w"; Pattern pattern = Pattern.compile(rex); Matcher matcher = pattern.matcher(packageName); return matcher.find(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final LinearLayout layout = (LinearLayout) findViewById(R.id.layout); ((Button) findViewById(R.id.def)) .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { layout.setBackgroundDrawable(getResources() .getDrawable(R.drawable.bg)); } }); ArrayList<PackageInfo> skinList = getAllSkin(); for (int i = 0; i < skinList.size(); i++) { try { final Context friendContext = createPackageContext( skinList.get(i).packageName, Context.CONTEXT_IGNORE_SECURITY); Button btn = new Button(this); btn.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); btn.setText(friendContext.getText(R.string.app_name)); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { layout.setBackgroundDrawable(friendContext .getResources().getDrawable(R.drawable.bg)); } }); layout.addView(btn); } catch (NameNotFoundException e) { e.printStackTrace(); } } } }
其它请下载附件查看。
发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 591本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1056颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 943从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1076Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 945Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 793前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 873监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 754在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 863最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1258##MediaQuery MediaQuery.of(con ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 1019当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 697setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1428问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 705底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1712点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1313import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2233TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1475一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 816Flutter最近很火,我抽出了一点时间对Flutter进行了 ... -
关于android O 上 NotificationChannel 的一些注意事项
2019-07-04 11:47 904最近在适配android O,遇到个问题,应用中原本有设置界面 ...
相关推荐
apk方式实现android应用程序换肤。 文章:http://blog.csdn.net/hailushijie/article/details/9454679
在Android应用开发中,实现apk皮肤文件换肤是一项常见的需求,它可以提高用户的个性化体验,同时降低主程序的维护复杂度。以下是对实现这一功能的详细分析: 首先,我们需要理解Android系统的安全机制。每个APK在...
Android皮肤支持:一种Android换肤框架,极低的学习成本,极好的用户体验。 只需要一行代码,就可以实现换肤,你值得拥有!!! SkinCompatManager . withoutActivity( this ) . loadSkin(); 就这么简单,你的APK已经...
这里来了解换肤实现及不同方案的差异和使用场合。 一、从功能上划分 1) 软件内置多个皮肤,用户不能修改; 2) 官方提供皮肤下载,用户使用下载的皮肤; 3) 官方提供皮肤制作工具或方法,用户自制皮肤。 二、皮肤定义...
android下换肤实现,类似go桌面的方式
在Android开发中,实现apk插件方式的换肤是一种提高用户体验和灵活性的策略。下面将详细解释这个过程涉及的关键知识点。 1. **何时换肤**: 在Android应用中,为了确保用户不会看到旧皮肤的颜色,换肤应在XML布局...
Android 换肤功能的实现(Apk插件方式)源码 技术方案是:将皮肤图片资源以独立的Apk安装包的方式提供,做成插件化的方式。便于管理。
android apk换肤法,将皮肤封装成APK文件,实现换肤
首先,墨迹天气的换肤实现方式是通过下载zip格式的皮肤压缩包,将皮肤资源解压到应用的目录下。当需要更换皮肤时,新的皮肤资源会替换旧的资源。这种方式的优点在于皮肤资源格式灵活,可以是zip或自定义格式,只要...
实现Android的换肤的功能,通过APK安装进行实现,可以更换布局与背景
本文实例讲述了Android编程实现换肤功能的方法。分享给大家供大家参考,具体如下: 本系列专题培训适用范围:初级Android程序员,即有J2SE基础和Android初级水平。J2SE基础是指掌握JAVA语法,1.5、1.6新增的语法不...
Android平台api没有特意为换肤提供一套简便的机制,这可能是外国的软件更注重功能和易用,不流行换肤。系统不提供直接支持,只能自行研究。 换肤,可以认为是动态替换资源(文字、... 通常,皮肤资源会在主程序apk之
提供了皮肤包下载以及加载的解决方案。
Android-Skin:极简单的android换肤框架,无缝支持第三方控件,一行代码即可换肤,集成成本极低, 提供丰富的API支持拓展,对业务代码几乎无入侵。 AndroidSkin.getInstance().saveSkinAndApply(skinFilePath, ...
而对于第二种,则相对复杂一些,由于作为一种线上服务,可能上架新皮肤,且那么多皮肤包放在apk里面实在太占体积了,所以皮肤资源会在选择后再进行下载,也就不能直接使用android的那套theme。 技术方案 内部资源...
如XBMC,其皮肤系统高度自定义但实现成本高,不适合快速开发场景。 2. **Android原生主题设置**:在values文件夹定义多种style,通过`setTheme`在Activity创建时设置主题。这种方式主题元素有限,主要限于基础样式...
总之,实现自定义zip皮肤更换功能涉及到了Android的文件操作、资源加载策略以及用户交互设计等多个方面。通过合理的解压和存储策略,不仅可以提升用户体验,还可以确保App的性能和稳定性。开发者需要理解并熟练掌握...