Портирование Android — настройка строки состояния

Привет, я пытаюсь изменить значок строки состояния в Android. Файл statusbar_background.9.png необходимо изменить. 1. Но может ли кто-нибудь предложить мне, как сделать его прозрачным? Что касается настройки, можем ли мы изменить ширину строки состояния до относительного размера? значит, исходя из количества значков, присутствующих на экране? Я изменяю файл /frameworks/base/packages/systemui/src/com/android/systemui/statusbar/statusbarservice.java

Пожалуйста, дайте мне какое-нибудь предложение. Спасибо, Аб.


person user637465    schedule 17.03.2011    source источник
comment
ваш вопрос не ясен, можете ли вы вставить свой xml-файл и уточнить свой вопрос, я думаю, вам следует использовать прокрутку   -  person Sunil Pandey    schedule 17.03.2011
comment
Привет, я имею в виду исходный код Android. Также файл xml — это status_bar.xml (представленный в папке /frameworks/base/packages/systemui/res/layout/). Насколько я понимаю, в StatusbarManager.java используется функция makestatusbarview(). где нам нужно указать, чтобы он был прозрачным?   -  person user637465    schedule 17.03.2011


Ответы (1)


Наконец я нашел ответ на свой вопрос.
Я изменил следующее:
android:background="@drawable/statusbar_background"
на

android:background="@android:color/transparent"

внутри файла /framework/base/packages/systemui/res/statusbar.xml.

Для изменения размера строки состояния необходимо сделать следующее: изменить функцию protected void addStatusBarView() в файле StatusbarService.java следующим образом:

WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                //abhi 17 mar ViewGroup.LayoutParams.MATCH_PARENT,
                mwidth, //specify the width of statusbar.. 
                height,
                WindowManager.LayoutParams.TYPE_STATUS_BAR,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                    | WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING,

                PixelFormat.TRANSPARENT
                );
        // abhi 15 march lp.gravity = Gravity.TOP | Gravity.FILL_HORIZONTAL;
        lp.gravity = Gravity.TOP | Gravity.LEFT;
        lp.setTitle("StatusBar");
        //lp.gravity = Gravity.CENTER;//abhi 18 march
        lp.windowAnimations = com.android.internal.R.style.Animation_StatusBar;
        lp.x = 25; // to move status bar to x position
        WindowManagerImpl.getDefault().addView(view, lp);

.....
}
person user637465    schedule 01.04.2011
comment
Какое разрешение вы указали в AndroidManifest.xml? - person dcanh121; 19.10.2012
comment
@ dcanh121 - нет, так как вы не можете сделать это из стороннего приложения. Речь идет о модификации исходного кода самого Android. - person Chris Stratton; 30.03.2015