美文网首页
Android 无界面Activity

Android 无界面Activity

作者: NathansLiu | 来源:发表于2018-08-23 17:55 被阅读0次

应项目需求要实现一个无界面的Activity
各种网址试了一遍界面是没了,但是无法点击桌面上的图标,各种属性就只是透明而已!

要求:不仅仅透明、还要能点击下面的图标、不需要setContentView(R.layout.activity_main) !

其实很简单上代码了,下面是我Activity的主题style,主要是设置为透明

 <style name="AppThemeTranslucent" parent="AppTheme.NoBar">
        <item name="android:windowBackground">@color/transparent</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
    </style>

看一下我Activity的代码,并没有写入布局,还有去除标题栏的代码

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags( WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,  WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
}

此时运行起来确实没有界面了,但只是透明的虽然没有设置布局但还是不能点击到桌面上的图标,于是...

 Window window = this.getWindow();
        WindowManager m = window.getWindowManager();
        Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
        WindowManager.LayoutParams p = window.getAttributes(); // 获取对话框当前的参数值
        p.height = 0; // 高度设置为0
        p.width = 0;//宽0
        p.gravity = Gravity.CENTER;
        window.setAttributes(p);

下面是全部代码,哈哈,我把布局大小设置为0了,这样就可以了,实现了真正的无界面!

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags( WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,  WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

        /*
         * 将对话框的大小按屏幕大小的百分比设置
         */
        Window window = this.getWindow();
        WindowManager m = window.getWindowManager();
        Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
        WindowManager.LayoutParams p = window.getAttributes(); // 获取对话框当前的参数值
        p.height = 0; // 高度设置为0
        p.width = 0;//宽0
        p.gravity = Gravity.CENTER;
        window.setAttributes(p);

相关文章

  • Android中的四大组件:

    一:Activity: Activity 是Android 四大组件之一,用于展示界面。Activity 中所有操...

  • 2019-04-15

    1、什么是Activity? 在Android当中,Activity提供可视化的用户界面,一个Android应用通...

  • Android多线程界面更新方法的总结

    Android多线程界面更新的方法总结 Android多线程与界面交互的方法 Activity.runOnUiTh...

  • 安卓学习纪录

    安卓组件 Activity activity为android应用提供可视化用户界面,有多少界面,就有多少个acti...

  • Android基础之Activity生命周期

    Activity是Android最常用的四大组件之一,Activity是Android应用中与用户交互的界面,...

  • Android界面绘制原理

    Android的Activity界面从何处开始绘制 Activity启动之后,灰溜溜的会去跑onCreate,on...

  • Fragment详

    一. Fragment简介 我们都知道,Android上的界面展示都是通过Activity实现的,Activity...

  • Android中的onNewIntent()函数

    1.Activity的四种启动模式 在Android中每个界面都是一个Activity,切换界面操作其实是多个...

  • Android开发四大件

    四大组件 Activity Activity是Android应用程序的界面,比如查看联系人、打电话、玩游戏的界面等...

  • 浅谈Activity的四种启动模式

    简单描述一下activity activity是Android的四大组件之一,在Android系统中以界面的形式进...

网友评论

      本文标题:Android 无界面Activity

      本文链接:https://www.haomeiwen.com/subject/sppmiftx.html