精华内容
下载资源
问答
  • Android5.0全透明状态效果

    万次阅读 多人点赞 2015-03-19 17:22:38
    Android 5.0 状态栏全透明效果



    实现上述效果的代码如下:


    public class MainActivity extends Activity {
    	
        @SuppressLint("InlinedApi")
    	@Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            getWindow().requestFeature(Window.FEATURE_NO_TITLE);
            if(VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
            	Window window = getWindow();
    			window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
    					| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
    			window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    							| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
    							| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                window.setStatusBarColor(Color.TRANSPARENT);
                window.setNavigationBarColor(Color.TRANSPARENT);
            }
    
            setContentView(R.layout.activity_main);
        }
    
    }


    展开全文
  • StarUML~状态效果

    千次阅读 2019-06-01 22:26:51
    01 示例 播放器 02 图书馆 借书状态
    01 示例 播放器

    在这里插入图片描述

    02 图书馆 借书状态

    在这里插入图片描述

    展开全文
  • 透明状态栏的效果有很多的app都有用到,效果图如下:上图中是qq的消息界面,可以看到顶部的状态栏是透明化的。接下来是实现步骤: 首先创建一个类,这里命名为ImmersiveStatusbar.java,代码实现如下: package ...

    透明状态栏的效果有很多的app都有用到,效果图如下:

    这里写图片描述

    上图中是qq的消息界面,可以看到顶部的状态栏是透明化的。


    接下来是实现步骤:

    • 首先在创建一个类,这里命名为ImmersiveStatusbar.java,代码实现如下:
    package com.xiaoke.accountsoft.util;
    
    import android.app.ActionBar;
    import android.graphics.Color;
    import android.os.Build;
    import android.view.View;
    import android.view.Window;
    
    /**
     * Created by zouqi on 2017/4/15.
     */
    
    public class ImmersiveStatusbar {
    
        private static ImmersiveStatusbar immersiveStatusbar;
    
        // 构造函数私有化
        private ImmersiveStatusbar() {
    
        }
    
        // TODO: 2017/4/17 单例模式
        public static ImmersiveStatusbar getInstance() {
    
            if (immersiveStatusbar == null) {
                // 加锁提高使用效率
                synchronized (ImmersiveStatusbar.class) {
                    if (immersiveStatusbar == null) {
                        immersiveStatusbar = new ImmersiveStatusbar();
                    }
                }
            }
            return immersiveStatusbar;
    
        }
    
        /***
         * 状态栏透明化
         * @param window    Window对象
         * @param actionBar ActionBar对象
         */
        public void Immersive(Window window, ActionBar actionBar) {
    
            if (Build.VERSION.SDK_INT >= 21) {
    
                View view = window.getDecorView();
                // TODO: 2017/4/13 两个FLAG一起使用表示会让应用的主体内容占用系统状态栏的时空间
                int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
                view.setSystemUiVisibility(option);
                // 将状态栏设置成透明色
                window.setStatusBarColor(Color.TRANSPARENT);
    
            }
            // 将ActionBar隐藏
            actionBar.hide();
    
        }
    }
    

    上述代码较为简单,均有注释,理解起来不难。

    但是需要注意的是我这里先进行了一层if判断,只有系统版本大于或等于5.0的时候才会执行上面的关键代码


    另外注意:

    这里写图片描述

    调用上图所示标注的方法时需要导入V7包,不然会找不到该方法。


    导入很简单,在gradle文件中添加依赖即可,如下图:

    这里写图片描述

    • 然后在你的活动类里面执行如下图所示的方法即可:

    这里写图片描述

    即活动设置使用的布局文件之后紧接方法:ImmersiveStatusbar.getInstance().Immersive(getWindow(), getActionBar());

    这里要传入两个参数,一个是Window对象和ActionBar对象。


    • 最后运行项目效果图如下所示:

    这里写图片描述

    这里写图片描述

    这里写图片描述

    透明状态栏效果成功的实现了。

    ================================================================

    每天进步一点点!加油!

    展开全文
  • Android实现沉浸式状态效果

    千次阅读 2018-06-05 16:36:30
    关于沉浸式状态栏,给大家推荐一个非常好的博文android标题栏、状态栏图标文字颜色及背景动态变化 另外说明下,沉浸式状态栏的实现仅适用于 android 4.4及以上版本,4.4以下的就不要想了。 1. 实现秀明状态栏...

    关于沉浸式状态栏,给大家推荐一个非常好的博文android标题栏、状态栏图标文字颜色及背景动态变化

    另外说明下,沉浸式状态栏的实现仅适用于 android 4.4及以上版本,4.4以下的就不要想了。

     
    1. 实现秀明状态栏常规方法

        //是否使用特殊的标题栏背景颜色,android5.0以上可以设置状态栏背景色,如果不使用则使用透明色值
        protected boolean useThemestatusBarColor = false;
        //是否使用状态栏文字和图标为暗色,如果状态栏采用了白色系,则需要使状态栏和图标为暗色,android6.0以上可以设置
        protected boolean useStatusBarColor = true;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            setStatusBar();
        }
    
          protected void setStatusBar() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上
                View decorView = getWindow().getDecorView();
                int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
                decorView.setSystemUiVisibility(option);
                //根据上面设置是否对状态栏单独设置颜色
                if (useThemestatusBarColor) {
                    getWindow().setStatusBarColor(getResources().getColor(R.color.colorTheme));//设置状态栏背景色
                } else {
                    getWindow().setStatusBarColor(Color.TRANSPARENT);//透明
                }
            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0
                WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
                localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
            } else {
                Toast.makeText(this, "低于4.4的android系统版本不存在沉浸式状态栏", Toast.LENGTH_SHORT).show();
            }
            
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && useStatusBarColor) {//android6.0以后可以对状态栏文字颜色和图标进行修改
                getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
            }
        }

    在Activity布局的根节点处加上 android:fitsSystemWindows=”true” 属性就可以了,要不布局会跑到状态栏和导航栏下面,与导航栏和状态栏重叠,这当然不是我们希望的。
     
    效果图如下:
    这里写图片描述

    此时,
    useThemestatusBarColor = false,说明不设置状态栏背景色,为透明
    useStatusBarColor = true,使状态栏图标和文字变暗,这个很有必要,不设置为true的话,由于状态栏字体颜色为白色,和状态栏背景色重叠,分不清。

    上面设置状态栏文字颜色和图标为暗色主要采用了以下两个标志:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && useStatusBarColor) {//android6.0以后可以对状态栏文字颜色和图标进行修改
                getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
            }

    2. 同一个Activity包含多个Fragment时,如何实现不同fragment的状态栏背景和文字颜色不一样
    实现以下效果
    (1).当标题栏背景为图片时,此时需要背景图片填充到状态栏的效果,如左图
    (2).当标题栏背景不是图片,此时不需要背景图片填充状态栏的效果,如右图
    暂时不考虑标题栏中既有背景图,又有背景色的情况,当然也可以实现,将左图中的标题栏的高度设置高一点即可(右图中的状态栏背景既有图片又有背景色仅仅是为了显示区分)
     
    图1 图2

    就是设置了状态栏为暗色后,还得设置回来,这其实主要靠下面两个flag标识,结全上面的两个flag标识就能实现。

    //设置状态栏文字颜色及图标为浅色
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);

     

    • View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
      前面说过了,是为了让视图能延伸到状态栏区域,使状态栏悬浮在视图布局之上。

    • View.SYSTEM_UI_FLAG_LAYOUT_STABLE
      保持整个View稳定, 常和控制System UI悬浮, 隐藏的Flags共用, 使View不会因为System UI的变化而重新layout。

     
    贴出MainActivity中的代码:

    public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener,
            ViewPager.OnPageChangeListener {
        private static final String TAG = "MainActivity";
    
        public static final int PAGE_ONE = 0;
        public static final int PAGE_TWO = 1;
        public static final int PAGE_THREE = 2;
        public static final int PAGE_FOUR = 3;
    
    
        private RadioGroup rgTabBar;
        private RadioButton rbChannel;
        private RadioButton rbMessage;
        private RadioButton rbBetter;
        private RadioButton rbSetting;
        private ViewPager viewpager;
        private MyFragmentPagerAdapter mAdapter;
    
        //是否使用特殊的标题栏背景颜色,android5.0以上可以设置状态栏背景色,如果不使用则使用透明色值
        protected boolean useThemestatusBarColor = true;
        //是否使用状态栏文字和图标为暗色,如果状态栏采用了白色系,则需要使状态栏和图标为暗色,android6.0以上可以设置
        protected boolean useStatusBarColor = true;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
            initViews();
        }
    
        private void initViews() {
    
            rgTabBar = findViewById(R.id.rg_tab_bar);
            rbChannel = findViewById(R.id.rb_channel);
            rbMessage = findViewById(R.id.rb_message);
            rbBetter = findViewById(R.id.rb_better);
            rbSetting = findViewById(R.id.rb_setting);
            viewpager = findViewById(R.id.viewpager);
    
            rgTabBar.setOnCheckedChangeListener(this);
            viewpager.setAdapter(mAdapter);
            viewpager.setCurrentItem(0);
            viewpager.addOnPageChangeListener(this);
            rbChannel.setChecked(true);
    
        }
    
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch (checkedId) {
                case R.id.rb_channel:
                    viewpager.setCurrentItem(PAGE_ONE);
                    
                    setStatusBar(R.color.colorWhite);
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//build.gradle中compileSdkVersion>=23
                    //    实现状态栏图标和文字颜色为暗色
                        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
                    }
                    break;
                case R.id.rb_message:
                    viewpager.setCurrentItem(PAGE_TWO);
                    
                    setStatusBar(R.color.colorRed);
                    getWindow().getDecorView().setSystemUiVisibility(
                            View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
    
                    break;
                case R.id.rb_better:
    
                    setStatusBar(R.color.colorGreen);
                    getWindow().getDecorView().setSystemUiVisibility(
                            View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
                    break;
                case R.id.rb_setting:
                    viewpager.setCurrentItem(PAGE_FOUR);
                    
                    setStatusBar(R.color.colorBlue);
                    getWindow().getDecorView().setSystemUiVisibility(
                            View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
                    break;
            }
        }
    
    
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }
    
        @Override
        public void onPageSelected(int position) {
        }
    
        @Override
        public void onPageScrollStateChanged(int state) {
            if (state == ViewPager.SCROLL_STATE_SETTING) {
                int currentItemPosition = viewpager.getCurrentItem();
                Log.w(TAG, "onPageScrollStateChanged: currentItemPosition::" + currentItemPosition);
                switch (currentItemPosition) {
                    case PAGE_ONE:
                        rbChannel.setChecked(true);
                        break;
                    case PAGE_TWO:
                        rbMessage.setChecked(true);
                        break;
                    case PAGE_THREE:
                        rbBetter.setChecked(true);
                        break;
                    case PAGE_FOUR:
                        rbSetting.setChecked(true);
                        break;
                }
            }
        }
    
        //******************************************************************************************
        protected void setStatusBar(int colorId) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上
                View decorView = getWindow().getDecorView();
                int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
                decorView.setSystemUiVisibility(option);
                //根据上面设置是否对状态栏单独设置颜色
                if (useThemestatusBarColor) {
                    getWindow().setStatusBarColor(getResources().getColor(colorId));//设置状态栏背景色
                } else {
                    getWindow().setStatusBarColor(Color.TRANSPARENT);//透明
                }
            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0
                WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
                localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
            } else {
                Toast.makeText(this, "低于4.4的android系统版本不存在沉浸式状态栏", Toast.LENGTH_SHORT).show();
            }
    
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && useStatusBarColor) {//android6.0以后可以对状态栏文字颜色和图标进行修改
                getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
            }
        }
    
    }

     
    另外特别强调下

    上述代码暂时不适用于底部带有导航栏的手机,如果对上述代码不做处理的话那么,带有底部导航栏手机底部导航按钮会和navigationbar重叠。
    如过你的手机底部带有导航栏的话,还是强烈推荐你看那篇非常好的博文android标题栏、状态栏图标文字颜色及背景动态变化
    好了,上述内容就是我记录的对于“沉浸式状态栏”的认识,也是为了加深理解和掌握其用法。对于不含底部带有导航栏的手机上述代码足够实现常用的沉浸式效果了。

    后续待我会继续参照大牛的博客,完善此篇文章。小伙伴如果有疑问的话,请留言,我们共同学习!!!

    展开全文
  • Cordova 实现沉浸式(透明)状态效果

    万次阅读 热门讨论 2017-07-05 15:04:31
    沉浸式状态栏(Immersive Mode)和透明状态栏(Translucent Bar)。这两个概念很多地方的解释都不是很清晰,所以导致很多人都各有各的认识。所以这里我也有一个自己的认识,笔者认为沉浸式状态栏...话不多说,看效果
  • 一下QQ5.0版本的状态效果吧 下面是成功加入沉浸式状态栏后,我们的应用 首先要注意的是,这种沉浸式状态栏的效果4.4系统及以上才会支持 方法很简单,你们代码setContentView之前中加入版本判断: if...
  • 不过最近效果图有一种效果要求 是在状态栏部分也显示内容部分, 像下面这样 下载地址 github传送门 我是用全屏模式实现的 首先activity的setContentView之前设置 状态栏模式为透明if (Build.VERSION.SDK_INT ...
  • axure中设置按钮的选中状态,悬停状态以及按钮组设置选中状态,一次只能选中一个。具体实现效果如图 第一种,简单设置按钮的选中,悬停等样式。首先选中按钮,点击新建交互样式-鼠标悬停。然后点击更多样式,即可...
  • Android如何一步步实现状态栏一体化效果

    千次阅读 热门讨论 2016-11-25 14:31:49
    可以看到,状态栏与App自身的标题栏融合了一块,相比于原生黑色的状态栏,给用户的整体视觉效果更佳,那么如何实现Android状态栏一体化效果? 实现 你所要实现沉浸的页面的Activity中添加如下代码: //...
  • 描述:ul中的每一个li都有hover效果(css中完成),但是点击后(即active的class状态下),要屏蔽hover的效果 解决:liactive状态下屏蔽hover效果 为li设置hover状态时,不要单纯的写li:hover,...
  • 状态栏高亮效果(五分钟入手 )

    千次阅读 2019-01-18 11:07:28
    教你如何实现 切换状态栏高亮效果(五分钟入手 ) 开发工具与关键技术:DW、js 作者:邱慧敏 撰写时间:2019.01.18 主要是:先用<div>来设置好html 的布局 1.给状态框一个class和id里面的...
  • Vue实现动态的选中状态切换效果

    千次阅读 2018-10-26 13:54:03
    HTML中的内容为以下。 <ul class="list"> <li v-for="(item,index) in liList" v-on:click="addClass(index)" v-bind:class="{ ischeck:index==...
  • 用js实现的一个数据加载中状态的动态效果 数据加载中<span class="id_loaddian"></span></p>
  • Android 状态栏背景模糊透明效果实现

    千次阅读 2015-10-21 10:43:00
    将其设置为statusbar背景,再采用高斯模糊处理算法,实现模糊效果。关于透明度,可以通过设置background实现。 2.实现: 首先调整壁纸铺满屏幕,当前壁纸未充满屏幕。修改offset值为0,壁纸窗口绘制出现y轴偏移,...
  • HBuilder 设置沉浸式状态栏显示效果

    千次阅读 2018-09-17 11:07:24
    1.manifest.json 要设置 "fullscreen": false; 2. manifest.json 设置 "plus": { "launchwebview": { "statusbar": { "background": "#...
  •  SystemUIandroid4.2SDK上,对于phone版本,包含了状态栏statusbar,也有导航栏navigationbar,对于有些手机来说可能导航栏是触摸屏上的,当然这一个部分是可以不需要的。下面我们就一起来看看systemUI可见性的...
  • &lt;ul class="buttonList"&gt; &lt;li class="ative"&gt;&lt;/li&...active是选中状态的样式。只需给ul下的li切换active样式即可。 给li添加以下点击
  • 本文主要总结用QPushbutton类做出QCheckBox的效果,同时用QSS实现按钮默认图标和颜色字体,鼠标滑过状态,选中后状态。 1.1下面,将关键代码贴出如下: QPushButton *allSelectBtn = new QPushButton("全选"); ...
  • 开发中,当我们设置了导航栏隐藏之后,却发现状态栏也跟着透明了,如果当前页面是个可以滚动的tableview时,我们发现用户体验十分不好。就如下图:那么请解决方法 为了体现出下文的bug,这里我把状态栏设为红色...
  • UIButton实现点击后两种状态的相互改变效果 ... 1.创建一个你所需要的...2.button响应的方法中使用selected状态进行标记 就是如此简单的几句代码,你会了吗,中间有的代码根据具体需求业务而定。。。。。。
  • 前言  欢迎大家我分享和推荐好用的代码段~~ 声明  欢迎转载,但请保留文章原始出处:  CSDN:http://www.csdn.net  雨季o莫忧离:... 正文   ...状态栏透明后有渐变的阴影效果,如何去除? 这是google defau
  • 用vue写APP的时候,导航栏经常出现的一个bug就是 点击的时候,选中状态会加上,但是一刷新“首页”部分就会被选中,但是组件的内容没有变化?(我靠。。什么鬼?!这是)查找了一些资料终于整出这东西了。 OK 上...
  • Android 沉浸式状态栏攻略 让你的状态栏变色吧

    万次阅读 多人点赞 2015-09-22 09:21:03
    一、概述近期注意到QQ新版使用了沉浸式状态栏,ok,先声明一下:本篇博客效果下图:关于这个状态栏变色到底叫「Immersive Mode」/「Translucent Bars」有兴趣可以去 为什么国内会有很多用户把 「透明
  • Android状态栏微技巧,带你真正理解沉浸式模式

    万次阅读 多人点赞 2016-08-23 07:32:55
    记得之前有朋友留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解。 其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先...
  • 类似平常微信语音聊天的效果…. 根据开发的需求,先理清一下思路,点击语音播放与暂停/停止,切换下一个语音等; 小程序对于audio的组件的一些api方法已经不支持了,详情可以参看:微信小程序audio组件文档 ...
  • node.getUI()....//节点选中状态 node.getUI().checkbox.indeterminate = true; //半选中状态 node.getUI().checkbox.indeterminate = false;取消半选中状态 之前只知道extjs treepanel节点可实现checked

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,023,185
精华内容 409,274
关键字:

在状态看效果