android常用知识

透明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" />
            <!--&lt;!&ndash; 设置按钮圆角半径为20dp &ndash;&gt;-->
        </shape>
    </item>
    </selector>

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值