透明activity样式:
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
这句代码,当你是建的empty activity project时,默认继承的是AppCompat这个类。所以在AndroidMifext.xml文件中用上述代码会导致程序错误,打不开,不清楚具体是什么原因。如果你的activity是继承Activity,应该不会这样。
解决办法:自定义透明样式
在res-theme-theme.xml文件中添加样式:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@android:color/transparent</item><!--透明的颜色-->
<!--以下统统没用-->
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item><!--过渡效果-->
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>-->
<item name="android:colorBackgroundCacheHint">@null</item>
</style>
然后在AndroidManifext.xml文件中引用即可。
透明是什么意思?假如你的布局文件空空如何,那么就相当于铺上了一层透明的纸。
假如你的布局文件中有按钮,文本等控件,那么你的控件其实是在这张透明的纸上,纸透明,看起来的效果就是与底层的图标交错覆盖,类似这种:
此时你点击图标是没用的,因为有透明 的纸挡着呢!!
#########################
service中启动新的activity:
Intent intent3 = new Intent(getApplicationContext(), MainActivity2.class);
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent3);
service中启动其他软件,指定目标软件的activity:
Intent intent2 = new Intent();
intent2.setClassName("com.example.demob", "com.example.demob.MainActivity");
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent2);
广播接收者打开后台服务:
Intent serviceIntent = new Intent(MainActivity.this, MyService.class);
startService(serviceIntent);
动态注册广播:广播接收器的注册和注销;广播接收器的接收广播后的处理。 (应用程序启动后才能接收到广播!)
静态注册广播:在AndroidManifest.xml文件中进行广播接收器的注册;广播接收器的接收广播后的处理 (无需应用启动即可接收的广播)。
注意:
从Android系统8.0开始,隐式广播的使用受到了一些限制。所有的隐式广播都不允许使用静态注册的方式来接收了,这意味着应用程序在清单文件中无法直接声明要接收的隐式广播。(如果指定了包名可以!!!!)所以自定义的静态广播是可以程序未运行时即开始监听。
屏幕开关的系统广播也需要动态注册。 有些是可以静态注册的(比如开机,电池广播)。
在有UI的android程序中,
color.xml 颜色
drawable:可以设置边框线条宽度,颜色;圆角半径;实心填充颜色。
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="@color/blackDefault"/>
<corners android:radius="1000dp"/>
<!-- <solid android:color="@color/fillColor"/>-->
</shape>
合理使用 selector,彻底告别手动改变 drawable、color - 简书 (jianshu.com)
selector(背景选择器)中的item相当于一个drawable,selector 是一个 drawable list。
item可以设置对应的 drawable或 color 。
android:state_enabled:可以用于一旦点击就改变样式的场景。一旦调用setEnabled(false)发现点击事件就不生效了,影响触摸或点击事件。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true"> <!---表示默认状态--> <!---默认背景填充颜色-->
<shape>
<!---背景填充颜色-->
<solid android:color="@color/color_FFC6D8AF" />
<!-- 设置边框宽度为1dp,边框颜色 -->
<stroke android:width="1dp" android:color="@color/color_FFC6D8AF" />
</shape>
</item>
<item android:state_enabled="false">
<!---点击状态-->
<shape>
<solid android:color="@color/colorNext" />
<!-- 设置边框宽度为1dp,边框颜色 -->
<stroke android:width="1dp" android:color="@color/color_FFC6D8AF" />
<!--<!– 设置按钮圆角半径为20dp –>-->
</shape>
</item>
</selector>