(转)非全屏Activity实现,以及触摸消息的处理

做一个数据库APP,添加数据总是需要切换Activity,觉得太不流畅了,对theme不熟悉,就度娘了一下,先借鉴下这篇博文,效果还不错,准备等做完项目再好好研究一下相关的属性,现在先拿来主义。做出来的效果是这样的:

(转)非全屏Activity实现,以及触摸消息的处理_第1张图片

以下博文出处:https://www.cnblogs.com/seem/p/5806298.html (部分内容有所改动)

本次主要针对,非全屏的Activity做些了解;

作为初学者,之前接触到的activity大部分情况,都是全屏显示;

想要实现局部窗口的时候,都是采用悬浮窗来替代activity;直到最近才偶然了解到通过Theme.Dialog也能将activity实现局部现实的效果;

1.利用eclipse生成一个helloword的工程;

2.修改res\values\styles.xml如下(或添加

属性解释:

  1. android:windowCloseOnTouchOutside    点击activity窗口之外时,是否关闭activity;
  2. android:windowNoTitle  是否有标题栏;
  3. android:windowIsFloating  是否悬浮在其他activity之上;这里必须要设置为true,否则activity显示的时候,窗口虽然不是全屏,但是背景窗口任然是全屏的;

3.修改AndroidManifest.xml的主题风格为刚刚自定义的主题(对于单个Activity只需要把语句加到相应的标签内即可

android:theme="@style/Theme.NotFullActivity"

4.MainActivity.java修改窗口的大小

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        LayoutParams attributes = getWindow().getAttributes();
        
     attributes.dimAmount = 0.0f; //设置窗口之外部分透明程度
        attributes.x = 0;
        attributes.y = 0;
        attributes.width = 800;
        attributes.height = 1024;
        getWindow().setAttributes(attributes);
        
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
    }

 

 

属性解释:

  1. attributes.dimAmount  设置除acitvity之外的窗口,透明程度;以下是将dimAmount分别设置为:0.0f   和  0.6f的效果对比      (转)非全屏Activity实现,以及触摸消息的处理_第2张图片(转)非全屏Activity实现,以及触摸消息的处理_第3张图片
  2. getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
    这个是去掉activity对窗口之外的触摸消息响应(如果不设置此选项,那么如上图当中的:“浏览器”,“短信”都是不能点击的)
  3. 记得把  import android.view.WindowManager 添加到支持列内

5.layout\activity_main.xml  随便加上俩控件

 


    
    

    

 

 

附加几个andoird window属性的解释(没有测试过)转自:http://my.oschina.net/tedyin/blog/178376

 

 窗体的背景 
Dialog 是否有边框 
窗体是否有标题
false                              //是否为全屏
false                                //是否要求窗体铺满整屏幕               
false                              //窗体是否浮在下层之上
@null                          //设置窗体内容背景
false                           //是否显示壁纸
@android :style/WindowTitle        //窗体的标题栏Style
25dip                               //窗体文字大小

 //窗体标题栏背景
@android :style/WindowTitleBackground    //窗体切换时的动画样式
@android :style/Animation.Activity

//在使用输入法时窗体的适配
stateUnspecified|adjustUnspecified
false                    //是否打开ActionBar
false            //这个暂时不知道,希望大神能回答一下。
false          //是否再点击外部可关闭

false        //窗体是否半透明
false:      //背景是否模糊显示

@null       //自定义Titlebar时去掉多余的阴影。

 

你可能感兴趣的:(Android)