首页文章动态设置 主题 android 安卓手机动态主题安卓手机主题「动态设置 主题 android 安卓手机动态主题」

动态设置 主题 android 安卓手机动态主题安卓手机主题「动态设置 主题 android 安卓手机动态主题」

时间2025-01-17 04:21:24发布yu分类文章浏览138
导读:Activity动态设置主题android:theme 与 setTheme( 设置透明效果并不同一、在Manifest中设置主题...


Activity动态设置主题

android:theme 与 setTheme()设置透明效果并不同

一、在Manifest中设置主题


1.设置Application的主题在中添加android:theme=“@android:style/Theme.Translucent.NoTitleBar”

2.设置Activity的主题

在中添加 android:theme=“@android:style/Theme.Translucent.NoTitleBar”

Application的Theme默认是全局的,除非重写了Activity的Theme

二、在代码中动态设置主题

关键方法:setTheme(int resId)

这个方法是Activity中的一个方法

1.setTheme需要写在super.onCreate()前面setTheme(…);super.onCreate(savedInstanceState);setContentView(R.layout.Default);有效

2.setTheme需要写在super.onCreate()与setContentView()中间super.onCreate(savedInstanceState);setTheme(…);setContentView(R.layout.my_layout);有效

3.setTheme写在setContentView()后面无效

可以直接重写setTheme方法,该方法默认会在onCreate之前调用

setTheme->onCreate

三、问题点,设置透明主题时调用setTheme无效

通过二方法设置透明主题时,就会出现问题,主题设置没有效果,都是不起作用的-_-

通过现象可以总结如下

  1. 当activity通过动态设置主题时,设置透明的主题是不可用的。
  2. 当activity通过动态设置主题时,设置常规的主题是可行的。
  3. 当activity manifest中设置的主题是透明时,动态设置主题是可行的
  4. 当activity manifest中设置的主题不是透明时,动态设置主题为透明是不可行的

上面问题的解决方式

1.在AndroidMainfest.xml设置透明主题

android:theme=“@android:style/Theme.Translucent.NoTitleBar”

2.在Activity中调用setTheme方法

上面问题的解决方式

1.在AndroidMainfest.xml设置透明主题

android:theme=“@android:style/Theme.Translucent.NoTitleBar”

Android 隐式启动匹配原则

1、Intent中只能包含一个Action,可以包含多个Category;

2、清单文件中一个Activity可配置多个IntentFilter, 一个IntentFilter可包含多个

Action,多个Category,但是只能包含一个data;

3、Intent若含有Action,IntentFilter中包含多个Action,只要Intent中的Action与IntentFilter中的任一一个Action匹配,则算匹配成功;

4、Intent中若含有category,则这些category必须属于intentFilter中的category的子集,不管intentFilter中配置了多少category,Intent只需携带其子集数量的category即可匹配。

PS:IntentFilter中必须包含:categoryandroid:name=“android.intent.category.DEFAULT”/因为使用隐式意图的Intent中会添加默认的Category,即上图中的category值,如IntentFilter中不添加上图的Category,则匹配不成功,会爆出android.content.ActivityNotFoundException: No Activity found to handle Intent { act=xxxxxxxx }异常,但是我其实不太明白,为什么入口Activity中不需要这个默认的Category,希望有知道的能提点一下。

5、若清单文件中一个Activity配置了多个IntentFilter,Intent只需与其中一个IntentFilter中的内容相匹配即可,但不可跨越多个IntentFilter去匹配。

6、Data包含Scheme,Host,Port,Path和Type五部分,Intent中Data和Type是分开设置的,且会按照设置顺序后设置Type或Data会覆盖前设置的Data或type,如果要让Intent中Data和Type共同存在需要使用setDataAndType(Uri data,String type);的API同时设置。Intent中的Data的5个组成部分必须是IntentFilter中5个部分的自己,才算匹配。

不能在xml中引用GLSurfaceView

GLES2.0需要权限

保山版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com

展开全文READ MORE
动态主题手机主题安卓设置
注意!这些小物件可能在“偷听”你的生活手机监听器「注意!这些小物件可能在“偷听”你的生活」 个人热点怎么连接不上两个手机如何连接热点「个人热点怎么连接不上」