上篇我们知道了怎么改变TextView标签的各种属性,问题是,如果页面上有几十个上百个同类标签,难道要一个一个的修改吗?马上想到了CSS样式表,这里要庆幸的是Android同样支持样式表的加载。
简单来说只涉及两类文件:layout/main.xml、values/style.xml,下面是他们各自的代码:
main.xml
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <TextView
- style="@style/firstStyle"
- android:id="@+id/firstText"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/hello_world"/>
- </LinearLayout>
style.xml
- <resourcesxmlns:android="http://schemas.android.com/apk/res/android">
- <stylename="firstStyle">
- <itemname="android:textSize">18sp</item>
- <itemname="android:textColor">#FF00FF</item>
- </style>
- </resources>
为了更清晰的证明样式表作用,把main.java代码也贴出来
- packagecom.dy.study.firstbase;
- importandroid.os.Bundle;
- importandroid.app.Activity;
- publicclassMainextendsActivity{
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- }
可以注意到,完全没有改变,那么看看效果吧。
再对比一下,把样式表的颜色改为#00FFFF,再看下效果:
样式表简单介绍到这里,接着说color.xml,由于系统提供的Color.GREEN等之类的太少太单薄,所以为了美化UI,还是自己定义多个颜色代码方便使用吧,至于color.xml里面的内容,网上一搜一堆,我在学习的时候就是借鉴其他人共享的资料,这里感谢一下分享者,言归正传,简单列举几个颜色代码,并在main.java里面调用,看看效果:
color.xml
- <resources>
- <colorname="pink">#ffc0cb</color><!--粉红色-->
- <colorname="white">#ffffff</color><!--白色-->
- <colorname="gold">#ffd700</color><!--金色-->
- <colorname="indianred">#cd5c5c</color><!--印第安红-->
- <colorname="mediumvioletred">#c71585</color><!--中紫罗兰色-->
- </resources>
main.java
- packagecom.dy.study.firstbase;
- importandroid.os.Bundle;
- importandroid.widget.Button;
- importandroid.widget.TextView;
- importandroid.app.Activity;
- publicclassMainextendsActivity{
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- findViews();
- change();
- }
- privateTextViewfirstText;
- privateButtonfirstButton;
- privatevoidfindViews(){
- firstText=(TextView)findViewById(R.id.firstText);
- firstButton=(Button)findViewById(R.id.firstButton);
- }
- privatevoidchange(){
- firstText.setTextColor(getResources().getColor(R.color.gold));
- firstButton.setTextColor(getResources().getColor(R.color.indianred));
- }
- }
main.xml
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <TextView
- android:id="@+id/firstText"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/hello_world"/>
- <Button
- android:id="@+id/firstButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/demo"/>
- </LinearLayout>
然后看看显示结果:
这里需要注意的是,获取颜色信息需要使用getResources().getColor(R.color.gold)格式。样式表和color文件说完了,愿大家都有一个多彩靓丽的生活。