精华内容
下载资源
问答
  • 安卓手机状态栏图标等等都可以修改,包括手机信号、电池等等他们的图标位置都是可以互换的!下面就来教大家修改状态栏,以及安卓手机状态栏图标位置互换教程!修改具体方法:1、反编译原文件framework-res.apk,打开...

    安卓手机状态栏图标等等都可以修改,包括手机信号、电池等等他们的图标位置都是可以互换的!下面就来教大家修改状态栏,以及安卓手机状态栏图标位置互换教程!

    修改具体方法:

    1、反编译原文件framework-res.apk,打开\res\values\arrays.xml文件,搜索"config_statusBarIcons;

    1d1028c6f703359a7d044ab01d64b357.png

    2、点击上图中除了clock之外,其余图标位置上下互换,状态栏显示位置则左右互换。

    以信号与电池为例,array,phone_signal在battery上面。上下位置互换后,在状态栏中显示的位置左右对调。其余同理;

    3、回编framework-res.apk,替换resources.arsc,存储方式为存储,替换framework-res.apk,重启,OK(注意权限);

    4、如果无法回编,表示你修改的位置它无法出现,多次尝试,你会找到你要的位置;

    这里需要注意的是,美化framework-res.apk中的一些注意点;

    图标位置改变方法:

    1、只修改里面图片,就不要反编它,直接用压缩工具打开替换图片;

    2、修改代码时要反编framework-res.apk,但不要改图片,不然回编时很容易出错,谨记第一点;

    3、修改framework-res.apk中,很多修改都改动了resources.arsc中的东西,所以要修改必须一次性修改,比如你要全局透明,又要改变状态栏图标位置,你必须同时修改好再回编,不能改好透明后再反编改其他的;

    好了具体就介绍这款多,具体操作很简单,喜欢的机友们可以尝试修改一下吧!

    展开全文
  • 沉浸式状态栏,有时可能会遇到状态栏背景色和里面图标颜色混合的问题,难以区分,比如状态栏背景色设置成白色,这时图标也是白色的。图标就会显示不清楚。 我们可以在Activity的onCreate里调用以下方法解决。 ...

    沉浸式状态栏,有时可能会遇到状态栏背景色和里面图标颜色混合的问题,难以区分,比如状态栏背景色设置成白色,这时图标也是白色的。图标就会显示不清楚。
     

    sss


    我们可以在Activity的onCreate里调用以下方法解决。

    public static void setDarkStatusIcon(Window window, boolean bDark) {
        if (window != null) {
            View decorView = window.getDecorView();
            if(decorView != null){
                int vis = decorView.getSystemUiVisibility();
                if(bDark){
                    //设置黑色状态栏图标
                    vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
                } else{
                    //设置白色状态栏图标
                    vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
                }
                decorView.setSystemUiVisibility(vis);
            }
        }
    }

    上面的图,系统默认白色的状态栏图标。下边的图,调用该方法后,状态栏内的图标不再是白色的了。就和statusbar的颜色区分开了

    jj

    展开全文
  • com.android.internal.R.array.config_statusBarIcons,按照此数组的顺序排序,如果需要修改顺序,则需要修改此文件。 public StatusBarIconControllerImpl(Context context) { super(context.getResources().g

    原理

    com.android.systemui.statusbar.phone/StatusBarIconControllerImpl.java类的构造方法中读取
    com.android.internal.R.array.config_statusBarIcons,按照此数组的顺序排序,如果需要修改顺序,则需要修改此文件。

     public StatusBarIconControllerImpl(Context context) {
            super(context.getResources().getStringArray(
                    com.android.internal.R.array.config_statusBarIcons), context);
            Dependency.get(ConfigurationController.class).addCallback(this);
    
            mContext = context;
    
            loadDimens();
    
            SysUiServiceProvider.getComponent(context, CommandQueue.class)
                    .addCallbacks(this);
            Dependency.get(TunerService.class).addTunable(this, ICON_BLACKLIST);
    
        }
    

    /frameworks/base/core/res/res/values/config.xml

     <string-array name="config_statusBarIcons">
            <item><xliff:g id="id">@string/status_bar_alarm_clock</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_rotate</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_headset</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_data_saver</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_ime</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_sync_failing</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_sync_active</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_nfc</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_tty</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_speakerphone</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_cdma_eri</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_data_connection</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_phone_evdo_signal</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_phone_signal</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_secure</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_bluetooth</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_managed_profile</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_cast</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_vpn</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_mute</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_volume</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_location</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_zen</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_ethernet</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_wifi</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_hotspot</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_mobile</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_airplane</xliff:g></item>
            <item><xliff:g id="id">@string/status_bar_battery</xliff:g></item>
        </string-array>
    
    展开全文
  • com.android.systemui.statusbar.phone/StatusBarIconController.java类中修改如下方法: @VisibleForTesting protected StatusBarIconView addIcon(int index, String slot, boolean blocked, StatusBarIcon icon...

    操作

    com.android.systemui.statusbar.phone/StatusBarIconController.java类中修改如下方法:

    @VisibleForTesting
            protected StatusBarIconView addIcon(int index, String slot, boolean blocked,
                    StatusBarIcon icon) {
                StatusBarIconView view = onCreateStatusBarIconView(slot, blocked);
                view.set(icon);
                //add:状态栏图标添加间距.
                view.setPadding(2,0,2,0);
                //end add.
                mGroup.addView(view, index, onCreateLayoutParams());
                return view;
            }
    
            @VisibleForTesting
            protected StatusBarWifiView addSignalIcon(int index, String slot, WifiIconState state) {
                StatusBarWifiView view = onCreateStatusBarWifiView(slot);
                view.applyWifiState(state);
                //add:状态栏图标添加间距.
                view.setPadding(2,0,2,0);
                //end add.
                mGroup.addView(view, index, onCreateLayoutParams());
    
                if (mIsInDemoMode) {
                    mDemoStatusIcons.addDemoWifiView(state);
                }
                return view;
            }
    
            @VisibleForTesting
            protected StatusBarMobileView addMobileIcon(int index, String slot, MobileIconState state) {
                StatusBarMobileView view = onCreateStatusBarMobileView(slot);
                view.applyMobileState(state);
                //add:状态栏图标添加间距.
                view.setPadding(2,0,2,0);
                //end add.
                mGroup.addView(view, index, onCreateLayoutParams());
    
                if (mIsInDemoMode) {
                    mDemoStatusIcons.addMobileView(state);
                }
                return view;
            }
    

    原理

    状态栏添加图标最终会调用到
    com.android.systemui.statusbar.phone/StatusBarIconController.java类中的addHolder()方法:

    protected StatusIconDisplayable addHolder(int index, String slot, boolean blocked,
                    StatusBarIconHolder holder) {
                switch (holder.getType()) {
                    case TYPE_ICON:
                        return addIcon(index, slot, blocked, holder.getIcon());
    
                    case TYPE_WIFI:
                        return addSignalIcon(index, slot, holder.getWifiState());
    
                    case TYPE_MOBILE:
                        return addMobileIcon(index, slot, holder.getMobileState());
                }
    
                return null;
            }
    

    就是在这里将图标添加到@+id/statusIcons中的
    布局文件status_bar.xml

    ...
    <com.android.keyguard.AlphaOptimizedLinearLayout android:id="@+id/system_icon_area"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="3"
                android:orientation="horizontal"
                android:gravity="center_vertical|end"
                >
    
                <include layout="@layout/system_icons" />
            </com.android.keyguard.AlphaOptimizedLinearLayout>
    ...
    

    system_icon.xml:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/system_icons"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical">
    
        <com.android.systemui.statusbar.phone.StatusIconContainer android:id="@+id/statusIcons"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:paddingEnd="@dimen/signal_cluster_battery_padding"
            android:gravity="center_vertical"
            android:orientation="horizontal"/>
    
        <com.android.systemui.BatteryMeterView android:id="@+id/battery"
            android:layout_height="match_parent"
            android:layout_width="wrap_content"
            android:clipToPadding="false"
            android:clipChildren="false" />
    </LinearLayout>
    

    然后进入addIcon方法:

    @VisibleForTesting
            protected StatusBarIconView addIcon(int index, String slot, boolean blocked,
                    StatusBarIcon icon) {
                StatusBarIconView view = onCreateStatusBarIconView(slot, blocked);
                view.set(icon);
                mGroup.addView(view, index, onCreateLayoutParams());
                return view;
            }
    

    addView的时候创建了onCreateLayoutParams()

    public static class DarkIconManager extends IconManager {
           ...
            private int mIconHPadding;
    
            public DarkIconManager(LinearLayout linearLayout) {
                super(linearLayout);
                mIconHPadding = mContext.getResources().getDimensionPixelSize(
                        R.dimen.status_bar_icon_padding);
               ...
            }
            ...
            @Override
            protected LayoutParams onCreateLayoutParams() {
                LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                        ViewGroup.LayoutParams.WRAP_CONTENT, mIconSize);
                lp.setMargins(mIconHPadding, 0, mIconHPadding, 0);
                return lp;
            }
    }
    

    这里可以设置一个margin,原生设置的0。

    <!-- gap on either side of status bar notification icons -->
        <dimen name="status_bar_icon_padding">0dp</dimen>
    

    注意坑在这里,不管这里的margin值设为多少,最后并不会生效,因为在StatusIconContainer.java类中onLayout()方法中并没有考虑这个margin

     @Override
        protected void onLayout(boolean changed, int l, int t, int r, int b) {
            float midY = getHeight() / 2.0f;
    
            // Layout all child views so that we can move them around later
            for (int i = 0; i < getChildCount(); i++) {
                View child = getChildAt(i);
                int width = child.getMeasuredWidth();
                int height = child.getMeasuredHeight();
                int top = (int) (midY - height / 2.0f);
                child.layout(0, top, width, top + height);
            }
    
            resetViewStates();
            calculateIconTranslations();
            applyIconStates();
        }
    

    既然添加margin不行,那就添加padding,如文章开头的代码所示。

    展开全文
  • QQ状态栏图标修改

    2013-01-21 11:16:19
    QQ状态栏图标修改 只有一种图标 小企鹅图标变小钻石
  • 1.修改状态栏颜色,即修改application主题theme或者activity主题theme values/styles/ <!--状态栏颜色 样式 --> <style name="TranslucentTheme" parent="AppTheme"> </style> values-v19/...
  • 本文介绍了android开发修改...2、写修改状态栏图标的颜色(暂时只知道黑色和白色) public class StatusBarUtil { /** * 修改状态栏为全透明 * @param activity */ @TargetApi(19) public static void transpare
  • 5.0之后的Google的Material Design开始增加修改状态栏背景颜色和图标颜色的api 按照官方文档,有两种方式 在Activity中设置 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); ...
  • 状态栏图标

    2015-01-04 11:13:53
    任务上的的图标大多都在SystemUI.apk里,安卓2.3的 电量图标在framework-res.apk里。 图标基本都在drawable开头的几个文件夹中。 高分辨率的手机找res/drawable-hdpi 找到你想替换的图标进行替换,然后打包,...
  • 不但要去适配 MIUI ,Flyme(因为这两个都可以实现沉浸式,并且图标可以切换成黑色),也要分别适配 Android 6.0 以下, Android 6.0 起两种不同情况(6.0 起原生提供了高亮状态栏模式,该模式下状态栏图标可以切换...
  • 改变任务栏图标状态

    2011-12-21 13:34:57
    该代码简要介绍了如何更改任务图标状态
  • 改变状态栏颜色,可以看看这篇文章.传送门:实现状态栏(statusbar)渐变效果其实很简单 传送门实现的效果: 这种方法实现的状态栏变色,没有黑色背景. 使用全屏模式实现的效果如下(QQ的效果): 很明显的黑色背景. 我用...
  • 我正在尝试将状态栏的颜色更改为带有灰色图标的白色.我已经为这个问题尝试了几乎所有的代码解决方案,但是没有为我工作.我正在使用这个java fucntion来改变它,我也发布了我的样式(21)代码.public static void ...
  • 从其他网友那儿下载的代码比较旧,不能支持刷新Win7,经过修改支持Win7了,实测可用。原始积分只需要5,CSDN自动修改所需积分,太恶心了,我会定期改回来。
  • 所以有部分手机的状态栏默认颜色是白色的,那么如果我们开发的应用是白色就会看不清楚状态栏的字体和图标颜色,影响我们应用的整体体验感。我之前遇到也很头疼,看了很多博客发现并没有我想要的效果,我结合网上的...
  • 修改QQ五笔输入法状态栏图标

    千次阅读 2015-08-07 17:44:56
    1.下载必要的图标修改工具及资源,即:Axialis IconWorkshop 以及 ime.ico图标,下载地址:http://1drv.ms/1c1SGHU  Axialis IconWorkshop下载地址:http://www.iconworkshop.cn/  ime.ico图标下载: 2....
  • 实现的效果:状态栏背景颜色修改为白色,图标的颜色由原来的白色修改为淡黑色。效果图:修改状态栏背景为白色android系统5.0之前是不可修改状态栏的背景色的,为了兼容之前的版本,需要创建三个资源文件由上到下内容...
  • android标题栏、状态栏图标文字颜色及背景动态变化

    万次阅读 多人点赞 2017-06-22 14:22:30
    android中沉浸式状态栏的文章已经满大街了,可是在实现某些效果时,还是得各种搜索,测试一通后,最后还常常满足不了要求,即使好不容易在一部手机上满足了需求,放在另外一手机上,发现效果差强人意。今天把自己这...
  •  市面上有些三方app theme是白色或者灰白色,导致状态栏图标看不到或者看不清楚,了解到的有 WhatApps、ES文件浏览器、Instagram等三方应用。  如果希望状态栏颜色可以正常显示,要如何处理呢     ...
  • 设置沉浸式状态栏protected boolean useThemestatusBarColor = false;//是否使用特殊的标题栏背景颜色,android5.0以上可以...//是否使用状态栏文字和图标为暗色,如果状态栏采用了白色系,则需要使状态栏图标为暗...
  • 方案一: 使用 AppBar ...Brightness.dark AppBar 配置为暗色,显示图标为 白色图标 Brightness.light AppBar 配置为亮色,显示图标为 暗色 图标 import 'package:flutter/material.dart'; class PageDevelop extends
  • Windows 10 的 “开始菜单” 和 “任务栏” 等核心功能默认是左对齐的,这已经持续了将近 20 ...它不需要修改系统本身,无需担心对系统产生影响Windows 10 上的中心任务栏图标我们将使用由‪ChrisAndriessen‬开发的...
  • Android 4.4(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 6.0(API 23)之后,才支持修改状态栏上面的文字和图标颜色,默认是白色的。所以会导致一个问题,在 4.4 到 6.0 之间的系统,状态栏设置...
  • PS Tray Factory 是一个系统状态栏图标管理软件,可以将任何状态栏的图标隐藏起来。很多软件都会往状态栏添加图标,这样使得状态栏变得拥挤凌乱,这个小工具可以使状态栏重新成为简单而有效。你可以定义任意一个图标...
  • android5.0状态栏图标变成白色

    千次阅读 2015-05-12 13:57:42
    开发时候遇到一个问题,android5.0的notification,在状态栏图标显示一个白块,而在5.0之前的版本就不会出现这个问题,上网查了一下: 解释是android5.0之后的图标就不能够随便用一张色彩丰富的图片了,只能够有...
  • win10状态栏图标错乱

    2021-06-22 20:00:57
    新建一个空白文档,输入以下代码,保存后修改扩展名为.bat,运行后可恢复。 reg delete "HKEY_CURREnT_UsER\software\Classes\Local settings\software\Microsoft\windows\CurrentVersion\Traynotify" /va /f ...
  • android开发修改状态栏

    千次阅读 2018-01-04 09:40:27
    修改状态栏背景色和图标颜色默认是黑底白字的,现在要改为白底黑字的 ...2、写修改状态栏图标的颜色(暂时只知道黑色和白色) public class StatusBarUtil { /** * 修改状态栏为全透明 * @param a
  • Mac状态栏图标如何自定义排序?

    千次阅读 2019-11-11 14:19:20
    就是搜狗输入法的输入状态栏总是在状态栏的最左侧,但是这会经常造成在使用某些应用时,被其他应用的状态栏遮盖的情况。 解决方法是: 按住command键,然后就可以用鼠标进行拖动自定义了,简直太强! 参考文献: Mac...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,267
精华内容 33,306
关键字:

修改状态栏图标