android2.23.7如何在状态栏左侧显示文字?就比如是XX

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(4547)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'android源码开发之状态栏',
blogAbstract:'
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}随着时代的发展,Android的状态栏都不是乌黑一片了,在Android4.4之后我们可以修改状态栏的颜色或者让我们自己的View延伸到状态栏下面。我们可以进行更多的定制化了,然而有的时候我们使用的是淡色的颜色比如白色,由于状态栏上面的文字为白色,这样的话状态栏上面的文字就无法看清了。因此本文提供一些解决方案,可以是MIUI6+,Flyme4+,Android6.0+支持切换状态栏的文字颜色为暗色。
123456789101112131415
public static boolean setMiuiStatusBarDarkMode(Activity activity, boolean darkmode) {
Class&? extends Window& clazz = activity.getWindow().getClass();
int darkModeFlag = 0;
Class&?& layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
darkModeFlag = field.getInt(layoutParams);
Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
extraFlagField.invoke(activity.getWindow(), darkmode ? darkModeFlag : 0, darkModeFlag);
} catch (Exception e) {
e.printStackTrace();
上面为小米官方提供的解决方案,主要为MIUI内置了可以修改状态栏的模式,支持Dark和Light两种模式。
1234567891011121314151617181920212223242526
public static boolean setMeizuStatusBarDarkIcon(Activity activity, boolean dark) {
boolean result =
if (activity != null) {
WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
Field darkFlag = WindowManager.LayoutParams.class
.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON");
Field meizuFlags = WindowManager.LayoutParams.class
.getDeclaredField("meizuFlags");
darkFlag.setAccessible(true);
meizuFlags.setAccessible(true);
int bit = darkFlag.getInt(null);
int value = meizuFlags.getInt(lp);
if (dark) {
value &= ~
meizuFlags.setInt(lp, value);
activity.getWindow().setAttributes(lp);
} catch (Exception e) {
同理使用跟miui类似的方式
修改Android6.0+
Android 6.0开始,谷歌官方提供了支持,在style属性中配置android:windowLightStatusBar即可, 设置为true时,当statusbar的背景颜色为淡色时,statusbar的文字颜色会变成灰色,为false时同理。
目前为止,android6.0的市场占有率还很少,而MIUI和flyme在国内占有率还算可以,因此,我们可以尽自己所能,适配更多。
阅读(...) 评论()Android实现的状态栏定制和修改方法
作者:范立涛
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Android实现的状态栏定制和修改方法,涉及Android针对状态栏属性设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了Android实现的状态栏定制和修改方法。分享给大家供大家参考。具体如下:
大家都知道定制在android开发中的重要性,因为通过定制,你才能制造出差异化的产品,才能满足更多消费者的需求,
像HTC生产的手机都通过了深层次的二次开发,今天我也来分享一下我的状态栏定制。
废话不说了,直接上图:
主要更换了背景,文字颜色以及icon的显示顺序.
2. 关键代码部分
a) 代码在系统中的位置
status bar 的相关代码位于:frameworks/base/services/java/com/android/server/status。
其中StatusBarPolicy类主要负责接收action动作,其他一些核心操作全部位于StatusBarService类里面
b) 代码实例:
i. 接收action
if (action.equals(Intent.ACTION_BATTERY_CHANGED))
updateBattery(intent);
ii. 更新icon
private final void updateBattery(Intent intent)
mBatteryData.iconId = intent.getIntExtra("icon-small", 0);
mBatteryData.iconLevel = intent.getIntExtra("level", 0);
mService.updateIcon(mBatteryIcon, mBatteryData, null);
c) 资源位置:
Status bar 的相关资源位于:frameworks/base/core/res/res,关键布局为:base/core/res/res/layout/status_bar.xml ,
源码如下:这里可以设置notification字体颜色。
&com.android.server.status.StatusBarView xmlns:android="/apk/res/android"
android:background="@drawable/statusbar_background"
android:orientation="vertical"
android:focusable="true"
android:descendantFocusability="afterDescendants"
&LinearLayout android:id="@+id/icons"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"&
&com.android.server.status.IconMerger
android:id="@+id/notificationIcons"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:paddingLeft="6dip"
android:gravity="center_vertical"
android:orientation="horizontal"/&
&LinearLayout
android:id="@+id/statusIcons"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:paddingRight="6dip"
android:gravity="center_vertical"
android:orientation="horizontal"/&
&/LinearLayout&
&LinearLayout android:id="@+id/ticker"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="6dip"
android:animationCache="false"
android:orientation="horizontal" &
&ImageSwitcher android:id="@+id/tickerIcon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginRight="8dip"
&com.android.server.status.AnimatedImageView
android:layout_width="25dip"
android:layout_height="25dip"
&com.android.server.status.AnimatedImageView
android:layout_width="25dip"
android:layout_height="25dip"
&/ImageSwitcher&
&com.android.server.status.TickerView android:id="@+id/tickerText"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="wrap_content"
android:paddingTop="2dip"
android:paddingRight="10dip"&
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textColor="#ff000000" /&
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textColor="#ff000000" /&
&/com.android.server.status.TickerView&
&/LinearLayout&
&com.android.server.status.DateView android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:singleLine="true"
android:textSize="16sp"
android:textStyle="bold"
android:gravity="center_vertical|left"
android:paddingLeft="6px"
android:paddingRight="6px"
android:textColor="?android:attr/textColorPrimaryInverse"
android:background="@drawable/statusbar_background"
&/com.android.server.status.StatusBarView&
3. 简单修改
对status bar 的修改主要包括status bar的背景颜色、icon、字体颜色、icon顺序等。
a) 背景颜色:
背景颜色由frameworks/base/core/res/res/drawable-mdpi/statusbar_background.9.png决定,原始颜色是灰色,我们修改为黑色。
Icon根据不同显示项,由不同资源决定,暂时不更改。
c) 字体颜色:
由frameworks/base/services/java/com/android/server/status/ StatusBarIcon类中的代码控制,原始代码为:t.setTextColor(0xff000000),即黑色,我们将其更改为白色:t.setTextColor(0xffffffff)。
d) icon顺序:
由frameworks/base/core/res/res/values/array里面的资源文件控制,原始代码如下:
&string-array name="status_bar_icon_order"&
&item&&xliff:g id="id"&clock&/xliff:g&&/item&
&item&&xliff:g id="id"&secure&/xliff:g&&/item&
&item&&xliff:g id="id"&alarm_clock&/xliff:g&&/item&
&item&&xliff:g id="id"&battery&/xliff:g&&/item&
&item&&xliff:g id="id"&phone_signal&/xliff:g&&/item&
&item&&xliff:g id="id"&phone_evdo_signal&/xliff:g&&/item&
&item&&xliff:g id="id"&data_connection&/xliff:g&&/item&
&item&&xliff:g id="id"&cdma_eri&/xliff:g&&/item&
&item&&xliff:g id="id"&tty&/xliff:g&&/item&
&item&&xliff:g id="id"&volume&/xliff:g&&/item&
&item&&xliff:g id="id"&mute&/xliff:g&&/item&
&item&&xliff:g id="id"&speakerphone&/xliff:g&&/item&
&item&&xliff:g id="id"&wifi&/xliff:g&&/item&
&item&&xliff:g id="id"&tty&/xliff:g&&/item&
&item&&xliff:g id="id"&bluetooth&/xliff:g&&/item&
&item&&xliff:g id="id"&gps&/xliff:g&&/item&
&item&&xliff:g id="id"&sync_active&/xliff:g&&/item&
&item&&xliff:g id="id"&sync_failing&/xliff:g&&/item&
&item&&xliff:g id="id"&ime&/xliff:g&&/item&
&/string-array&
我们将battery与clock的位置更换。
希望本文所述对大家的Android程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 android2.2 的文章

 

随机推荐