事先将定义好的颜色代码以drawable的名称存放于resources中,这是学习开发Android程序必须养成的好习惯,正如同字符串常数一样,颜色也是可以事先在res目录下的values文件下下的colors.xml文件下定义好的,定义格式如下:
<drawable name=color_name>color_value</drawable>
下面的一个例子使用两种方法使用这个定义了的常数。
方法一:通过引用的方法在xml文件下使用,使用的方法如下
android:background="@drawable/color_name"
方法二:使用java代码调用,这时需要使用如下代码
//获取资源的方法 Resources resources = getBaseContext().getResources(); Drawable HippoDrawable = resources.getDrawable(R.drawable.color_name);
下面是一个综合运用这两种方法的例子:
1.运行截图如下:
2.实现代码:
2.1 layout布局文件
<?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/red" > <TextView android:id="@+id/myTextView01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/str_textview01" /> <TextView android:id="@+id/myTextView02" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/str_textview02" /></LinearLayout>
2.2 颜色资源定义文件
<?xml version="1.0" encoding="utf-8"?><resources> <drawable name="darkgray">#808080FF</drawable> <drawable name="white">#FFFFFFFF</drawable> <drawable name="red">#FF0000</drawable></resources>
2.3 主程序文件
public class EX03_03 extends Activity { private TextView mTextView01; private TextView mTextView02; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView01 = (TextView) findViewById(R.id.myTextView01); mTextView01.setText("我是套用Drawable背景色的戴维文字。"); //获取资源的方法 Resources resources = getBaseContext().getResources(); Drawable HippoDrawable = resources.getDrawable(R.drawable.white); mTextView01.setBackgroundDrawable(HippoDrawable); mTextView02 = (TextView) findViewById(R.id.myTextView02); mTextView02.setTextColor(Color.MAGENTA); //Color类提供的颜色常量如下:// Constants // int BLACK // int BLUE // int CYAN // int DKGRAY // int GRAY // int GREEN // int LTGRAY // int MAGENTA // int RED // int TRANSPARENT // int WHITE // int YELLOW } }