Android 7.0 MT6580 状态栏添加电池电量百分比显示及添加Settings开关

frameworks/base/packages/SystemUI/res/layout/status_bar.xml是状态栏icon的资源文件,首先在这里添加Battery percent View



            ……

            <include layout="@layout/system_icons" />
            
            <TextView android:id="@+id/battery_precent"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginStart="@dimen/header_battery_margin_expanded"
                android:textColor="#ffffff"
                android:textSize="@dimen/battery_level_text_size"
                android:importantForAccessibility="noHideDescendants"/>
             
            <com.android.systemui.statusbar.policy.Clock

            ……

然后在frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java的makeStatusBarView方法中进行对View的控制。

……
            /**
             *@go
             */
            mBatteryPercent = (TextView) mStatusBarView.findViewById(R.id.battery_precent);
            mBatteryPercent.setVisibility((Settings.System.getInt(
                                            context.getContentResolver(),
                                            "battery_percentage", 0) != 0) ? View.VISIBLE : View.GONE);
            /**
             *@die
             */
……

这里需要监听电池电量的变化,这个类已经有一个方法,所以只需要获取电量转换百分比并赋到TextView中显示

            @Override
            public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
                //**
                String percentage = NumberFormat.getPercentInstance().format((double) level / 100.0);
                mBatteryPercent.setText(percentage);
                // noop
            }

你可能感兴趣的:(android客制)