`
koliy
  • 浏览: 148668 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何在android--statusBar上添加字符显示

 
阅读更多
最近修改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-gm-statusbar状态栏透明工具类

    在Android开发中,状态栏(StatusBar)的管理是界面设计中的一个重要环节,它可以极大地影响到应用的用户体验。"Android-gm-statusbar状态栏透明工具类" 提供了一种方便的方式来处理状态栏的透明效果,使得开发者...

    Atom-go-signature-statusbar,在atom状态栏的光标下显示当前go函数的签名.zip

    这个插件的工作原理是,当你在 Atom 编辑器中将光标移动到某个 Go 函数调用处时,它会在状态栏上动态地显示该函数的完整签名信息。这包括函数名、参数列表以及返回值。这样,开发者无需离开当前编辑的行,就能清楚地...

    wpf---StatusBar

    StatusBar是一种在窗口底部显示状态信息的控件,常用于显示应用程序的状态或提示信息。 **描述分析:** 描述中提到,“和大家分享一下,这是一个wpf实例,做起来的界面感觉还不错。只是简单了点。”这暗示我们将...

    react-native-statusbar-props:获取手机状态栏高度

    安装 ...rootProject.projectDir,"../node_modules/react-native-statusbar-props/android"&#41; build.gradle dependencies { compile fileTree(dir: "libs", include: ["*.jar"]) compile "com.a

    cordova-plugin-statusbar-transparent:将状态栏设置为在Android 4.4或更高版本上是透明的

    ## cordova-plugin-statusbar-transparent 将状态栏设置为在Android 4.4或更高版本上是透明的。 适用于Cordova&gt; = 3.0的插件安装对于科尔多瓦: cordova plugin add git@github....

    Toolbar-Imagelist-Statusbar.zip_Toolbar_imagelist_statusbar控件_to

    在开发中,我们首先需要将所需的图标添加到Imagelist中,然后将Imagelist与Toolbar的ImageList属性绑定,这样Toolbar上的按钮就能显示相应的图标了。通过调整ImageList的大小和色彩深度,可以适应不同分辨率和颜色...

    Android编程实现禁止StatusBar下拉的方法

    本文实例讲述了Android编程实现禁止StatusBar下拉的方法。分享给大家供大家参考,具体如下: Android中有许多隐藏的Service,StatusBarManager就是其中一个,在Context.java中可以看到: /** * Use with {@link #...

    android 禁用statusBar demo

    在Android开发中,有时我们可能需要为特定场景禁用状态栏(StatusBar),比如为了实现全屏体验或特殊界面设计。然而,通常情况下,系统权限是不允许应用直接禁用statusBar的,尤其是对于没有获取到SYSTEM_ALERT_...

    Android代码-status-bar-compat

    compile 'com.githang:status-bar-compat:0.7' 代码调用 最后在你的Activity的setContentView()方法调用之后,调用以下方法即可。 StatusBarCompat.setStatusBarColor(this, color, lightStatusBar); 或者是 ...

    Android statusBar添加back,home,menu按钮

    然而,根据您的标题和描述,这个压缩包可能包含了使开发者能够在StatusBar上添加额外功能,比如back、home和menu按钮的资源和代码补丁。 在Android原生设计中,back、home和menu按钮通常位于屏幕底部的系统导航栏上...

    android-zram-status-master.zip

    在"android-zram-status-master.zip"这个压缩包中,我们可以推测这可能是一个关于ZRAM状态监控的项目或应用。"master"通常表示这是项目的主分支,意味着它包含了最新的开发和改进。这个项目可能包括了源代码、文档、...

    android-sdk\platforms\android-21

    2. **StatusBar和NavigationBar的透明化**:在Android 21中,状态栏和导航栏可以变得透明,允许应用的内容延伸到这些区域,提供了一种全屏沉浸式的体验。这种设计让应用的界面更具吸引力,同时提供了更好的设备边缘...

    react-native-custom-statusbar

    一个库,可帮助您在对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

    综上所述,"Advanced-Application-Status-Bar.zip_BAR" 包含的源码涵盖了创建和管理高级状态栏的各种技术,包括自定义设计、动态更新、多语言支持以及与其他系统组件的交互。通过研究和学习这些源码,开发者可以提升...

    android-async-http的jar包

    在Android应用开发中,网络操作必须在后台线程进行,以确保用户体验的流畅性。 `android.async.http.jar` 文件包含了从1.2.0到1.4.8的不同版本。这些版本可能包含各种性能改进、bug修复和新功能。例如,早期版本...

    Android statusBar添加bac

    Android statusBar添加bac

    Android android-async-http-1.4.9

    在Android开发中,异步处理是一项至关重要的技术,特别是在网络请求方面。`android-async-http-1.4.9` 是一个专为Android设计的异步HTTP库,它简化了网络请求的处理流程,使开发者能够更高效地进行网络通信。这个库...

    精彩编程与编程技巧-设定StatusBar的文字成不同的颜色...

    在Visual Basic中,StatusBar 控件可以添加到窗体上,用来显示多个面板(Panels),每个面板都可以显示不同的信息。例如,一个应用可能在一个面板中显示当前日期时间,在另一个面板中显示鼠标光标的位置等。 ### ...

    go-dwm-statusbar

    go-dwm-状态栏 dwm窗口管理器的轻量级状态栏。 模块: 日期 时间 电池需要acpi软件包 亮度需要xbacklight...在$HOME/.config/go-dwm-statusbar/config.yaml编辑或创建配置文件 可以在文件中找到配置选项的完整说明。

    PB-Native-Statusbar:这是如何在 Powerbuilder 中使用可调整大小的响应窗口和本机状态栏的示例

    在"PB-Native-Statusbar"示例中,开发者可能已经编写了适当的API调用和事件处理程序,以确保状态栏在各种操作系统环境下表现得如同原生的一部分。 **实际应用** 学习和理解这个示例可以帮助开发者提升PowerBuilder...

Global site tag (gtag.js) - Google Analytics