我目前正在设置3个进入LinearLayout的文本视图(下面的代码)。但是,使用setColor方法分配的最后一种颜色似乎只适用于第一个textview,实际上会覆盖我最初为其设置的颜色。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
TextView view1 = new TextView(this);
view1.setText("I am view one");
view1.setTextColor(ColorStateList.valueOf(Color.RED));
view1.setTextSize(25);
view1.setGravity(Gravity.CENTER);
TextView view2 = new TextView(this);
view2.setText("I am view two");
view1.setTextColor(ColorStateList.valueOf(Color.BLUE));
view2.setTextSize(30);
view2.setGravity(Gravity.CENTER);
TextView view3 = new TextView(this);
view3.setText("I am view three");
view1.setTextColor(ColorStateList.valueOf(Color.YELLOW));
view3.setTextSize(50);
view3.setGravity(Gravity.CENTER);
LinearLayout myLinearLayout = new LinearLayout(this);
myLinearLayout.setOrientation(LinearLayout.VERTICAL);
myLinearLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
myLinearLayout.setGravity(Gravity.CENTER);
myLinearLayout.addView(view1);
myLinearLayout.addView(view2);
myLinearLayout.addView(view3);
setContentView(myLinearLayout);
在这种情况下,view1为黄色,其他视图为灰色...红色和蓝色未应用于正确的视图。作为一个注释我最初刚刚尝试使用setColor,你可以看到我试图根据文档使用ColorStateList,但同样的结果适用。无论如何,我将如何强制在不同的文本视图上强制我想要的颜色?我知道这应该很容易,也许我只是在这里遗漏了一些东西。提前谢谢。
答案 0 :(得分:4)
请注意您设置颜色的对象 - 似乎有一大堆复制粘贴留下。每个颜色分配都在view1
完成,而您真正想要的是将第二个分配中的颜色设置为view2
,将第三个分配中的颜色设置为view3
:
TextView view1 = new TextView(this);
view1.setText("I am view one");
view1.setTextColor(ColorStateList.valueOf(Color.RED));
view1.setTextSize(25);
view1.setGravity(Gravity.CENTER);
TextView view2 = new TextView(this);
view2.setText("I am view two");
view2.setTextColor(ColorStateList.valueOf(Color.BLUE)); // <-- view2
view2.setTextSize(30);
view2.setGravity(Gravity.CENTER);
TextView view3 = new TextView(this);
view3.setText("I am view three");
view3.setTextColor(ColorStateList.valueOf(Color.YELLOW)); // <-- view3
view3.setTextSize(50);
view3.setGravity(Gravity.CENTER);
顺便说一句,在视图上简单调用.setColor(Color.RED)
(或不同的颜色)就足够了。