TextView
TextView控件能向用户展示文本信息,可以自己设置该文本的信息是否能够编辑
android:layout_width="fill_parent"指的是当前视图宽度布满父视图所占宽度。fill_parent设置一个顶部布局或控件强制性让它布满整个屏幕
wrap_content布局指根据视图内部内容自动扩展以适应其大小。
设置高度或者宽度推荐使用:dp,即dip device independentpixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
设置字体大小推荐使用:sp,sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
改变字体颜色: android:textColor=”#00FF00”
在程序外部改变颜色则
设置超链接:
Android:autoLink=”email” 识别,点击时打开邮箱
android:autoLink="phone" 点击时识别电话号码,进入拨号界面
android:autoLink="all" 即电话,邮箱、链接都识别
跑马灯效果:
需要设置5个属性
android:text="@string/tvstring"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
这里主要涉及android:focusable和android:focusableInTouchMode这两个属性,简单来说把这两个属性都设置成
true,那么在运行程序以后跑马灯效果就显示出来了,这里就不再贴这两行代码了。
但是细细品味这两个属性之后发现其中其实还是有一些玄机的:
1.如果这两个属性设置成android:focusable="true"以及android:focusableInTouchMode="false",那么会发现程序运行之后,走马灯效果没有出现,
这个时候需要用户按下手机或者模拟器上的上下导航键,才能让走马灯的效果出现,这说明android:focusable是针对于手机按键有效的,然而根据api的解释,
android:focusableInTouchMode是根据屏幕触摸决定的。
2.如果这两个属性设置成android:focusable="false"与android:focusableInTouchMode="true",那么无论如何走马灯都出现不了了,就算加上android:clickable="true"
也不行,这说明 android:focusable="true"是android:focusableInTouchMode="true"能有效的先决条件,我推测可能是在源码实现中,android:focusableInTouchMode
的逻辑是嵌套在android:focusable中的,这个有待于以后进一步的研究,路漫漫其修远兮。。。
3.在把这两个属性都设置成true以后,会发现程序运行之后,走马灯效果自动就显现了出来,这说明应用在运行后,会自动地按照某种顺序(在这里应该是自上而下),
寻找第一个android:focusableInTouchMode="true"这个属性有效的第一个控件,当然要使这个属性有效按照前面的讨论android:focusable="true"也必须具备。根据测试,
LinearLayout的Clickable,LongClickable,Focusable,FocusableInTouchMode这四个属性默认也都是false,因此,在上面的例子中TextView就率先获得了焦点,
走马灯也就走了起来了。