Android中最简单,最常见的一个控件TextView,用来显示文本信息。今天从这个控件来说起,谈谈Android中控件显示方式相关的内容。

一、Android中有两种方法可以显示一个控件。

1、直接在Activity类代码中创建并显示,这个和J2SE中Swing组建的用法是一样的。

TextView tv = new TextView(this);tv.setText("http://blog.csdn.net/xn4545945");setContentView(tv);

2、通过xml布局文件进行创建并显示。

setContentView(R.layout.main); // 通过SpannableStringBuilder类来给字符串设置颜色样式。String str = "xn4545945的技术博客!";SpannableStringBuilder s = new SpannableStringBuilder(str);s.setSpan(new ForegroundColorSpan(Color.RED), 0, 9,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);s.setSpan(new ForegroundColorSpan(Color.CYAN), 9, 14,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);s.setSpan(new ForegroundColorSpan(Color.GRAY), 14, 15,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);tv1.setText(s);

在src/res/layout/中有个main.xml文件,setContentView(R.layout.main)中的R.layout.main就是指的这个main.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" ><!-- 用来设置部分颜色 --><TextViewandroid:id="@+id/xn"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/xn" /><!-- 用来设置跑马灯效果 --><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"android:marqueeRepeatLimit="marquee_forever"android:singleLine="true"android:text="@string/marquee" /></LinearLayout>

注意,虽然两种方法都能创建并显示、设置并显示控件,但是我们可以看到,默认新建一个Activity的时候,就有如下代码

super.onCreate(savedInstanceState); setContentView(R.layout.main);

可见,Android推荐的是用xml布局文件来创建并显示控件。

这种方法和第一种方法相比优点很多。其中最重要的就是实现了视图与代码分离,使美工人员可以专心xml文件的布局,使编写逻辑控制部分的人员可以专心编写,而不必担心控件是如何显示的。他不像第一种方法那样,将用于显示控件的代码与用于控制操作的代码混在一起。这其实和MVC设计模式中分层的思想是一样的。如果学习过Flex的同学也许会觉得很熟悉,Flex中的spark组件的出现就是为了实现创建控件的代码与设置控件样式的代码分离,使其更加灵活,方便操作。

需要提醒一下的是setContentView(...)只能出现一次,以最后一次出现的为准。也就是说,当你第二次调用这个方法的时候,他就会将第一次调用的结果给覆盖掉,这样Activity中就只显示第二次设置的控件。

二、任意设置控件的样式

可能你需要将一个控件设置成五边形,十边形,但是在布局文件的属性里面又没有找到进行这样设置的方法。

其是Android提供了一种更灵活的设置属性---android:background=""

这种方法也是通过指定一个xml文件,来对控件的样式进行设置。

下面提供一个简单的例子:

<EditTextandroid:id="@+id/et1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:hint="hahahaahahahhahah"android:maxLength="4" android:drawableLeft="@drawable/log"android:background="@drawable/shape"/><!--引用任意drawable文件夹下的shape.xml-->

shape.xml


<?xml version="1.0" encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="#FF00FF"/><!-- 设置颜色 --><corners android:radius="14dip"/><!-- 设置弧度 --></shape>

转载请注明出处http://blog.csdn.net/xn4545945

个人微博:http://weibo.com/xuneng007



更多相关文章

  1. android 工程中重新生成gen文件夹或R.java 文件
  2. Android深入浅出自定义控件(一)
  3. Android 自定义组合控件小结
  4. [Android]直接使用代码建立Android视图元件
  5. Android UI开发专题(四) View自绘控件
  6. Android Layout布局文件里的android:layout_height等属性不起作
  7. Mac OS X 编译Android内核源代码
  8. Android 下载的三种实现方式(文件流的读写方式下载,用DownloadMan
  9. Android 自定义View及其在布局文件中的使用示例

随机推荐

  1. [置顶] Android中保存数据常用的方法
  2. Android Framewok引用第三方jar包
  3. 没看完的Android + Handler + Runnable +
  4. Android 增量更新实例
  5. Android(安卓)属性动画(Property Animatio
  6. Android智能指针
  7. Get the screen size in Android
  8. A005-AS项目结构解析
  9. android下使用单元测试
  10. S5PV210 Android 触摸按键驱动解析