问题描述
Android中TextView的settextcolor方法,是接受一个int型的参数,现在我要从xml文件里面读取一个形为“#FF00FF”的字符串,怎样把这个字符串处理成为我想要的int参数呢?今天试了很多方法都没有很好解决,想请教一下大家,谢谢啦! 问题补充:就是TextView.setTextColor(int i)这个方法所需要的int参数啊,一般是0xFFFF00FF这种类型的int类型数据。地狱牢笼 写道
解决方案
TextView tv = new TextView(this);tv.setText("Test set TextView's color.");String StrColor = null;StrColor = "FFFFFFFF";int length = StrColor.length();if (length == 6) {tv.setTextColor(Color.rgb(Integer.valueOf(StrColor.substring(0, 2), 16),Integer.valueOf(StrColor.substring(2, 4), 16),Integer.valueOf(StrColor.substring(4, 6), 16)));} else if (length == 8) {tv.setTextColor(Color.argb(Integer.valueOf(StrColor.substring(0, 2), 16),Integer.valueOf(StrColor.substring(2, 4), 16),Integer.valueOf(StrColor.substring(4, 6), 16),Integer.valueOf(StrColor.substring(6, 8), 16)));}不知道你知道不知道R文件中的int只是对Resource中的资源的索引,就是让找到自愿的。转换成那个int我不知道游泳没有,反正我这人很笨。只会这样笨笨的走了。
解决方案二:
TextView tv = new TextView(this);tv.setText("Test set TextView's color.");//方案一。通过rgb值的方式tv.setTextColor(Color.rgb(255, 255, 255));//方案二。通过资源文件Resources resource = (Resources) getBaseContext().getResources();ColorStateList csl = (ColorStateList) resource.getColorStateList(R.color.my_color);if (csl != null) {tv.setTextColor(csl);}
解决方案三:
你想要的int参数是怎么样的?