最近修改statusBar,需要在上面添加自定义的字符。
版本:android-2.3.1
--------------------------------------------------
1.先参考statusbar上时间的布局文件:
frameworks\base\packages\SystemUI\res\layout\status_bar.xml
<LinearLayout android:id="@+id/statusIcons"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:paddingRight="6dip"
android:gravity="center_vertical"
android:orientation="horizontal"/>
<com.android.systemui.statusbar.Clock
android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:singleLine="true"
android:paddingRight="6dip"
android:gravity="center_vertical|left"
/>
<com.android.systemui.statusbar.HandSetNum //我们所需要显示的字符
android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textSize="14sp"
android:gravity="center_vertical"
android:paddingLeft="10dip"
android:paddingRight="10dip"
/>
注释: <com.android.systemui.statusbar.Clock
<com.android.systemui.statusbar.HandSetNum
意思很明确,就是在statusbar目录下添加一个类名文件,我们参考closk,在
\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\下创建一个HandSetNum.java 文件,里面内容基本跟clock.java一样。
android:gravity="center_vertical" :意思就是在组件里面的位置
android:layout_gravity="center_vertical" :指组件在layout的位置。
android:paddingLeft="10dip" :离组件边距
android:paddingRight="10dip"
2.编写HandSetNum.java
public class HandSetNum extends TextView {
private boolean mAttached;
public HandSetNum(Context context) {
this(context, null);
}
public HandSetNum(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public HandSetNum(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
if (!mAttached) {
mAttached = true;
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_HANDSET_NUM);
getContext().registerReceiver(mIntentReceiver, filter, null, getHandler());
}
updateHandSetNum();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
if (mAttached) {
getContext().unregisterReceiver(mIntentReceiver);
mAttached = false;
}
}
private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_HANDSET_NUM)) {
updateHandSetNum();
}
}
};
final void updateHandSetNum() {
setText("Hs:1");
}
}//end HandSetNum
基本跟clock.java代码相同,主要以setText();来实现字符的显示。
3.编译android源码
分享到:
相关推荐
在Android开发中,状态栏(StatusBar)的管理是界面设计中的一个重要环节,它可以极大地影响到应用的用户体验。"Android-gm-statusbar状态栏透明工具类" 提供了一种方便的方式来处理状态栏的透明效果,使得开发者...
这个插件的工作原理是,当你在 Atom 编辑器中将光标移动到某个 Go 函数调用处时,它会在状态栏上动态地显示该函数的完整签名信息。这包括函数名、参数列表以及返回值。这样,开发者无需离开当前编辑的行,就能清楚地...
StatusBar是一种在窗口底部显示状态信息的控件,常用于显示应用程序的状态或提示信息。 **描述分析:** 描述中提到,“和大家分享一下,这是一个wpf实例,做起来的界面感觉还不错。只是简单了点。”这暗示我们将...
安装 ...rootProject.projectDir,"../node_modules/react-native-statusbar-props/android") build.gradle dependencies { compile fileTree(dir: "libs", include: ["*.jar"]) compile "com.a
## cordova-plugin-statusbar-transparent 将状态栏设置为在Android 4.4或更高版本上是透明的。 适用于Cordova> = 3.0的插件安装对于科尔多瓦: cordova plugin add git@github....
在开发中,我们首先需要将所需的图标添加到Imagelist中,然后将Imagelist与Toolbar的ImageList属性绑定,这样Toolbar上的按钮就能显示相应的图标了。通过调整ImageList的大小和色彩深度,可以适应不同分辨率和颜色...
本文实例讲述了Android编程实现禁止StatusBar下拉的方法。分享给大家供大家参考,具体如下: Android中有许多隐藏的Service,StatusBarManager就是其中一个,在Context.java中可以看到: /** * Use with {@link #...
在Android开发中,有时我们可能需要为特定场景禁用状态栏(StatusBar),比如为了实现全屏体验或特殊界面设计。然而,通常情况下,系统权限是不允许应用直接禁用statusBar的,尤其是对于没有获取到SYSTEM_ALERT_...
compile 'com.githang:status-bar-compat:0.7' 代码调用 最后在你的Activity的setContentView()方法调用之后,调用以下方法即可。 StatusBarCompat.setStatusBarColor(this, color, lightStatusBar); 或者是 ...
然而,根据您的标题和描述,这个压缩包可能包含了使开发者能够在StatusBar上添加额外功能,比如back、home和menu按钮的资源和代码补丁。 在Android原生设计中,back、home和menu按钮通常位于屏幕底部的系统导航栏上...
在"android-zram-status-master.zip"这个压缩包中,我们可以推测这可能是一个关于ZRAM状态监控的项目或应用。"master"通常表示这是项目的主分支,意味着它包含了最新的开发和改进。这个项目可能包括了源代码、文档、...
2. **StatusBar和NavigationBar的透明化**:在Android 21中,状态栏和导航栏可以变得透明,允许应用的内容延伸到这些区域,提供了一种全屏沉浸式的体验。这种设计让应用的界面更具吸引力,同时提供了更好的设备边缘...
一个库,可帮助您在对iPhone(all)和android的本机响应中创建StatusBar。 正在安装 npm i react-native-custom-statusbar --save npm add react-native-custom-statusbar 例子 // in App.js or App.tsx import ...
综上所述,"Advanced-Application-Status-Bar.zip_BAR" 包含的源码涵盖了创建和管理高级状态栏的各种技术,包括自定义设计、动态更新、多语言支持以及与其他系统组件的交互。通过研究和学习这些源码,开发者可以提升...
在Android应用开发中,网络操作必须在后台线程进行,以确保用户体验的流畅性。 `android.async.http.jar` 文件包含了从1.2.0到1.4.8的不同版本。这些版本可能包含各种性能改进、bug修复和新功能。例如,早期版本...
Android statusBar添加bac
在Android开发中,异步处理是一项至关重要的技术,特别是在网络请求方面。`android-async-http-1.4.9` 是一个专为Android设计的异步HTTP库,它简化了网络请求的处理流程,使开发者能够更高效地进行网络通信。这个库...
在Visual Basic中,StatusBar 控件可以添加到窗体上,用来显示多个面板(Panels),每个面板都可以显示不同的信息。例如,一个应用可能在一个面板中显示当前日期时间,在另一个面板中显示鼠标光标的位置等。 ### ...
go-dwm-状态栏 dwm窗口管理器的轻量级状态栏。 模块: 日期 时间 电池需要acpi软件包 亮度需要xbacklight...在$HOME/.config/go-dwm-statusbar/config.yaml编辑或创建配置文件 可以在文件中找到配置选项的完整说明。
在"PB-Native-Statusbar"示例中,开发者可能已经编写了适当的API调用和事件处理程序,以确保状态栏在各种操作系统环境下表现得如同原生的一部分。 **实际应用** 学习和理解这个示例可以帮助开发者提升PowerBuilder...