• android常用知识


    透明activity样式:

    android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
    

    这句代码,当你是建的empty activity project时,默认继承的是AppCompat这个类。所以在AndroidMifext.xml文件中用上述代码会导致程序错误,打不开,不清楚具体是什么原因。如果你的activity是继承Activity,应该不会这样。

    解决办法:自定义透明样式

    在res-theme-theme.xml文件中添加样式:

    1. <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    2. <item name="android:windowBackground">@android:color/transparentitem>
    3. <item name="android:windowAnimationStyle">@android:style/Animation.Translucentitem>
    4. <item name="android:windowIsTranslucent">trueitem>
    5. <item name="android:windowContentOverlay">@nullitem>-->
    6. <item name="android:colorBackgroundCacheHint">@nullitem>
    7. style>

    然后在AndroidManifext.xml文件中引用即可。

    透明是什么意思?假如你的布局文件空空如何,那么就相当于铺上了一层透明的纸。

    假如你的布局文件中有按钮,文本等控件,那么你的控件其实是在这张透明的纸上,纸透明,看起来的效果就是与底层的图标交错覆盖,类似这种:

    此时你点击图标是没用的,因为有透明 的纸挡着呢!!

    #########################

    service中启动新的activity:

    1. Intent intent3 = new Intent(getApplicationContext(), MainActivity2.class);
    2. intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    3. startActivity(intent3);

    service中启动其他软件,指定目标软件的activity:

    1. Intent intent2 = new Intent();
    2. intent2.setClassName("com.example.demob", "com.example.demob.MainActivity");
    3. intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    4. startActivity(intent2);

    广播接收者打开后台服务:

    1. Intent serviceIntent = new Intent(MainActivity.this, MyService.class);
    2. startService(serviceIntent);

    动态注册广播:广播接收器的注册和注销;广播接收器的接收广播后的处理。 (应用程序启动后才能接收到广播!)
    静态注册广播:在AndroidManifest.xml文件中进行广播接收器的注册;广播接收器的接收广播后的处理        (无需应用启动即可接收的广播)。

    注意:

    从Android系统8.0开始,隐式广播的使用受到了一些限制。所有的隐式广播都不允许使用静态注册的方式来接收了,这意味着应用程序在清单文件中无法直接声明要接收的隐式广播。(如果指定了包名可以!!!!)所以自定义的静态广播是可以程序未运行时即开始监听。
    屏幕开关的系统广播也需要动态注册。  有些是可以静态注册的(比如开机,电池广播)。


    在有UI的android程序中,



    color.xml    颜色
    drawable:可以设置边框线条宽度,颜色;圆角半径;实心填充颜色。

    1. <shape xmlns:android="http://schemas.android.com/apk/res/android">
    2. <stroke android:width="2dp" android:color="@color/blackDefault"/>
    3. <corners android:radius="1000dp"/>
    4. shape>

    合理使用 selector,彻底告别手动改变 drawable、color - 简书 (jianshu.com)

    selector(背景选择器)中的item相当于一个drawable,selector 是一个 drawable list。

    item可以设置对应的 drawable或 color 。

    android:state_enabled:可以用于一旦点击就改变样式的场景。一旦调用setEnabled(false)发现点击事件就不生效了,影响触摸或点击事件。

    1. "1.0" encoding="utf-8"?>
    2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
    3. <item android:state_enabled="true">
    4. <shape>
    5. <solid android:color="@color/color_FFC6D8AF" />
    6. <stroke android:width="1dp" android:color="@color/color_FFC6D8AF" />
    7. shape>
    8. item>
    9. <item android:state_enabled="false">
    10. <shape>
    11. <solid android:color="@color/colorNext" />
    12. <stroke android:width="1dp" android:color="@color/color_FFC6D8AF" />
    13. shape>
    14. item>
    15. selector>

  • 相关阅读:
    Hive分区(静态分区+动态分区)
    C++实现单链表的各种操作(数据结构)
    【Spring | AOP】日志拦截
    Mysql之部分表主从搭建及新增表
    如何使用本地 Docker 更好地开发
    计算机毕业设计(附源码)python学生宿舍管理系统
    java计算机毕业设计基于springboo+vue的共享单车自行车管理系统
    【运维】Linux修改Hosts
    面试官:字节流可以处理一切文件为什么还需要字符流呢?
    【图像分割】图像分割质量分数,如 TP、FP、TN、FN、Accuracy、Sensitivity、Precision、MCC、Dice、Jaccard
  • 原文地址:https://blog.csdn.net/qq_63053996/article/details/139780538