当前位置:首页 » 安卓系统 » android文字颜色

android文字颜色

发布时间: 2022-09-23 19:29:53

A. Android沉浸式状态栏 如何改变状态图标和文字的颜色

在Android4.4设备上支持沉浸式状态栏,只需要添加values-v19/styles.xml 下添加
?

1
2

<code class="language-xml hljs "><style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.NoActionBar" type="text/css"><item name="android:windowTranslucentNavigation">false</item>
<item name="android:windowTranslucentStatus">true</item></style></code>

然后在可以扩展的控件添加属性android:fitsSystemWindows="true"
就阔以了。
但在MIUI V6下如果扩展的颜色比较浅,会导致状态栏的文字无法看清。在其他ROM上会有渐变的灰色区域。
MIUI提供了新的解决方案,在MIUI V6上状态栏支持灰黑色和白色两种字体颜色,开发者可以直接设置当前界面状态栏的文字颜色。
具体代码:
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

<code class="language-java hljs ">/**
* 只支持MIUI V6
* @param context
* @param type 0--只需要状态栏透明 1-状态栏透明且黑色字体 2-清除黑色字体
*/
public static void setStatusBarTextColor(Activity context,int type){
if (!isMiUIV6()){
DebugLog.d("isMiUIV6:"+false);
return;
}
DebugLog.d("isMiUIV6:"+true);
Window window = context.getWindow();
Class clazz = window.getClass();
try {
int tranceFlag = 0;
int darkModeFlag = 0;
Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_TRANSPARENT");
tranceFlag = field.getInt(layoutParams);
field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
darkModeFlag = field.getInt(layoutParams);
Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
if (type == 0){
extraFlagField.invoke(window, tranceFlag, tranceFlag);//只需要状态栏透明
}else if(type == 1){
extraFlagField.invoke(window, tranceFlag | darkModeFlag, tranceFlag | darkModeFlag);//状态栏透明且黑色字体
}else {
extraFlagField.invoke(window, 0, darkModeFlag);//清除黑色字体
}
}catch (Exception e){

}
}

private static final String KEY_MIUI_VERSION_NAME = "ro.miui.ui.version.name";
private static boolean isMiUIV6() {
try {
final BuildProperties prop = BuildProperties.newInstance();
String name = prop.getProperty(KEY_MIUI_VERSION_NAME, "");
if ("V6".equals(name)){
return true;
}else {
return false;
}
// return prop.getProperty(KEY_MIUI_VERSION_CODE, null) != null
// || prop.getProperty(KEY_MIUI_VERSION_NAME, null) != null
// || prop.getProperty(KEY_MIUI_INTERNAL_STORAGE, null) != null;
} catch (final IOException e) {
return false;
}
}</code>

B. Android设置状态栏颜色和状态栏文字、图标颜色

Android开发中,经常需要实现下图状态栏的效果,类似于沉浸式状态栏,但这里仅仅是讨论设置状态栏的颜色和状态栏上面文字、图标的颜色的方法。

Android 4.4(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 6.0(API 23)之后,才支持修改状态栏上面的文字和图标颜色,默认是白色的。所以会导致一个问题,在 4.4 到 6.0 之间的系统,状态栏设置为浅色的话,状态栏上面白色的文字和图标会看不清,像下面这样:

有一些第三方的系统提供了设置状态栏和状态栏文字、图标颜色的方法,比如小米的MIUI和魅族的Flyme,所以考虑了下比较好的实现方式是:

当然,这里面也会有坑,比如 MIUI 提供的修改状态栏字体颜色方法会跟 Android 系统自带的方法冲突,官方说明如下: 关于MIUI状态栏字符颜色逻辑调整说明
经过网上的资料和自己的尝试,MIUI 系统还是同时使用 MIUI 提供的方法和 Android 系统自带的方法来修改状态栏字体颜色比较保险。

基于上面的思考,封装了设置 Android 4.4 以上系统状态栏颜色和状态栏字体、图标颜色的方法:

要在 Application Theme 加上 <item name="android:fitsSystemWindows">true</item> ,不然页面会顶到状态栏上面,或者在 Activity 的布局里面加上 android:fitsSystemWindows="true" 和 android:clipToPadding="false" 也可以。

最终实现的效果如下:

大家有更好的方案可以告诉我~

C. android中怎样给button中的字设置颜色

我们可以使用selector来实现Button的特效,如图所示:

默认情况

获得焦点的时候

点击按钮

main.xml

Xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="按下或者获得焦点Button会变不同颜色"
<SPAN style="COLOR: #ff0000">android:textColor="@color/button_text" </SPAN>/>
</LinearLayout>
www.2cto.com
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="按下或者获得焦点Button会变不同颜色"
android:textColor="@color/button_text" />
</LinearLayout>

XML 文件保存在res/color/button_text.xml

Xml代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true" android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>

背景选择器-selector

概述
在drawable/xxx.xml中配置,通过配置selector,可以使系统运行时根据控件对象的状态使用相应的图片、文字等。
selector中的常用属性
android:state_selected 控件选中状态,可以为true或false
android:state_focused 控件获得焦点状态,可以为true或false
android:state_pressed 控件点击状态,可以为true或false
android:state_enabled 控件使能状态,可以为true或false
android:state_checkable 控件可勾选状态,可以为true或false
android:state_checked 控件勾选状态,可以为true或false
注意:在状态描述中,第一个匹配当前状态的item会被使用。因此,如果第一个item没有任何状态特性的话,那么它将每次都被使用,所以默认的值必须总是在最后。
android:window_focused 应用程序窗口焦点状态,可以为true或false
android:color 定义特定状态的颜色
#rgb
#argb
#rrggbb
#aarrggbb
为16进制颜色。这个颜色由rgb值指定,可带alpha,必须以”#“开头,后面跟随alpha-red-green-blue信息,格式可以为:
使用selector设置背景
把下面的XML保存成.xml文件(比如list_item_bg.xml),运行时系统会根据ListView中列表项的状态来使用相应的背景图片。
drawable/list_item_bg.xml
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 默认时的背景图片 -->
<item android:drawable="@drawable/pic1" />

<!-- 没有焦点时的背景图片 -->
<item android:state_window_focused="false"
android:drawable="@drawable/pic1" />

...

D. 如何设置android字体颜色

如果代码里面的话,倒是可以加载相应的字体,如果是系统的话,需要下载一些软件haiyaoyouroot的权限。

E. android指定文字修改颜色

textView=(TextView)findViewById(R.id.textview);
SpannableStringBuilderbuilder=newSpannableStringBuilder(textView.getText().toString());
//ForegroundColorSpan为文字前景色,BackgroundColorSpan为文字背景色
ForegroundColorSpanredSpan=newForegroundColorSpan(Color.RED);
ForegroundColorSpanwhiteSpan=newForegroundColorSpan(Color.WHITE);
ForegroundColorSpanblueSpan=newForegroundColorSpan(Color.BLUE);
ForegroundColorSpangreenSpan=newForegroundColorSpan(Color.GREEN);
ForegroundColorSpanyellowSpan=newForegroundColorSpan(Color.YELLOW);
builder.setSpan(redSpan,0,1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.setSpan(whiteSpan,1,2,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
builder.setSpan(blueSpan,2,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.setSpan(greenSpan,3,4,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.setSpan(yellowSpan,4,5,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(builder);
简单示例。。

F. android 如何设置TextView中字体在不同状态下的颜色

TextView的字体设置方法:
1、直接通过配置文件设置
2、在Activity类中进行设置

第一种方式很简单,用于静态或初始文字颜色的设置,方法如下:

main.xml

Xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/white"
>
<TextView
android:id="@+id/tv01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:autoLink="all"
android:textColor="@color/red"
/>
</LinearLayout>
color.xml
Xml代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#FF0000</color>
</resources>
drawable.xml

Xml代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="white">#FFFFFF</drawable>
<drawable name="dark">#000000</drawable>
<drawable name="red">#FF0000</drawable>
</resources>
strings.xml

Xml代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">地址:http://yahaitt.javaeye.com</string>
<string name="app_name">丫梨的笔记本</string>
</resources>

上面将资源部分分成了3个部分,目的是为了清晰,当然你也可以只建一个xml文件放在res目录下,而且文件名称可以随便命名。

注意两个地方:
1、main.xml的TextView标签中:
android:textColor="@color/red"
2、color.xml中:
<color name="red">#FF0000</color>

@color指获取资源文件中(所有res目录下的xml文件)的<color>标签
/red指在标签下找其name值为red的内容,此时其值为#FF0000

因此,这里我们还可以这样做:
android:textColor="@drawable/red"

@drawable指获取资源文件中<drawable>标签
/red指在标签下找其name值为red的内容

以此类推,相信你也就知道了如果是在strings.xml中该怎么做了。

下面看看第二种方式:在Activity类中进行设置

1、先将main.xml改成如下,即去掉android:textColor="@color/red":

Xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/white"
>
<TextView
android:id="@+id/tv01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:autoLink="all"
/>
</LinearLayout>
2、修改Activity的onCreate方法,这里我的Activity是Study03_01,原始代码如下:

Java代码
package yahaitt.study03_01;

import android.app.Activity;
import android.os.Bundle;

public class Study03_01 extends Activity { @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}

第一步:获得文本控件TextView,取名为tv

第二步:通过TextView的setTextColor方法进行文本颜色的设置,这里可以有3种方式进行设置:

第1种:tv.setTextColor(android.graphics.Color.RED);//系统自带的颜色类

第2种:tv.setTextColor(0xffff00ff);//0xffff00ff是int类型的数据,分组一下0x|ff|ff00ff,0x是代表颜色整数的标记,ff是表示透明度,ff00ff表示颜色,注意:这里ffff00ff必须是8个的颜色表示,不接受ff00ff这种6个的颜色表示。

第3种:tv.setTextColor(this.getResources().getColor(R.color.red));//通过获得资源文件进行设置。根据不同的情况R.color.red也可以是R.string.red或者R.drawable.red,当然前提是需要在相应的配置文件里做相应的配置,如:
<color name="red">#FF0000</color>
<drawable name="red">#FF0000</drawable>
<string name="red">#FF0000</string>

详细的代码如下:
Java代码
package yahaitt.study03_01;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;

public class Study03_01 extends Activity {

private TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

tv = (TextView)this.findViewById(R.id.tv01);

// tv.setTextColor(Color.RED);

// tv.setTextColor(0xff000000);

G. android 默认字体颜色值是多少

刚刚在android19 SDK下写了一个listview 然后用ps获取到listview分割线的颜色值 十六进制:d8d8d8 RGB:216 216 216

H. android中设置文本颜色怎样设置

利用系统自带的颜色类
TextView1.setTextColor(android.graphics.Color.RED);

数字颜色表示法
TextView1.setTextColor(0xffff00ff);
自定义颜色
TextView1.setTextColor(this.getResources().getColor(R.drawable.red));
我在values文件夹下新建一个color.xml,内容如下:
?

<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="dkgray">#80808FF0</drawable>
<drawable name="yello">#F8F8FF00</drawable>
<drawable name="white">#FFFFFF</drawable>
<drawable name="darkgray">#938192</drawable>
<drawable name="lightgreen">#7cd12e</drawable>
<drawable name="black">#ff000000</drawable>
<drawable name="blue">#ff0000ff</drawable>
<drawable name="cyan">#ff00ffff</drawable>
<drawable name="gray">#ff888888</drawable>
<drawable name="green">#ff00ff00</drawable>
<drawable name="ltgray">#ffcccccc</drawable>
<drawable name="magenta">#ffff00ff</drawable>
<drawable name="red">#ffff0000</drawable>
<drawable name="transparent">#00000000</drawable>
<drawable name="yellow">#ffffff00</drawable>
</resources>

I. Android中TextView中的文字颜色设置setTextColor的用法

原文链接http://blog.csdn.net/u012532559/article/details/44925285

Android 中设置TextView的颜色有方法setTextColor,这个方法被重载了,可以传入两种参数。一种方法是传入int color值,要注意这个int不是R文件中自动分配的十六进制int值,这是Color类中的静态方法构造出来的颜色int值。另一种方法是通过ColorStateList得到xml中的配置的颜色的。好多需要xml中配置的都要类似这样的映射xml文件(比如一个按钮事件的选择器,默认状态为颜色A,点击时状态为颜色B等等选择效果)。

setTextColor的两种重载方法如下:

[java] view plain

publicvoidsetTextColor(intcolor) {

mTextColor = ColorStateList.valueOf(color);

updateTextColors();

}

publicvoidsetTextColor(ColorStateList colors) {

if(colors ==null) {

thrownewNullPointerException();

}

mTextColor = colors;

updateTextColors();

}

第一种重载方法有以下实现方式:

方法一:通过ARGB值的方式

textview.setTextColor(Color.rgb(255,255, 255));

textview.setTextColor(Color.parseColor("#FFFFFF"));

方法二:通过资源引用

textview.setTextColor(mContext.getResources().getColor(R.drawable.contact_btn_text_red))

#f2497c

第二种重载方法的实现:

[java] view plain

textview.setTextColor(mContext.getResources().getColorStateList(R.drawable.big_btn_text_color));

选择器big_btn_text_color.xml

[html] view plain

热点内容
lc脚本编辑器 发布:2025-01-15 07:18:59 浏览:528
追剧脚本 发布:2025-01-15 07:00:39 浏览:445
c语言字符串库函数 发布:2025-01-15 06:54:49 浏览:525
c语言的工作 发布:2025-01-15 06:50:50 浏览:521
口语交际访问 发布:2025-01-15 06:44:13 浏览:329
编程少儿学习 发布:2025-01-15 06:39:03 浏览:504
服务器搭建怎么设置 发布:2025-01-15 06:39:01 浏览:152
格鲁尔要什么配置 发布:2025-01-15 06:26:56 浏览:857
linux下安装jdk 发布:2025-01-15 06:03:05 浏览:545
服务器拷数据到电脑 发布:2025-01-15 05:58:19 浏览:481