Android之UI组件TextView的属性大集合

Android之UI组件TextView的属性大集合

下载原码地址:http://download.csdn.net/detail/rhljiayou/3917103

1、先展示项目结构图:


主界面:


链接手机/网页/邮件/地址的界面效果:


文本显示内容处理界面:



TextView显示图片的界面:


2、主界面很简单就三个按钮事件

package cn.csdn.activity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class TextViewLianxiActivity extends Activity { Button button1=null; Button button2=null; Button button3=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViews(); /**手机/网页/邮件/地址/全部**/ button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(); intent.setClass(TextViewLianxiActivity.this, AddressTextView.class); startActivity(intent); } }); /**文本内容处理**/ button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(); intent.setClass(TextViewLianxiActivity.this, FontTextView.class); startActivity(intent); } }); /**显示图片和背景图片**/ button3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(); intent.setClass(TextViewLianxiActivity.this, ImageTextView.class); startActivity(intent); } }); } private void findViews() { button1=(Button) findViewById(R.id.button1); button2=(Button) findViewById(R.id.button2); button3=(Button) findViewById(R.id.button3); } }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" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/test" /> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="链接手机/网页/邮件/地址" /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="文本显示内容处理" /> <Button android:id="@+id/button3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView中显示图片" /> </LinearLayout>

链接手机/网页/邮件/地址的xml代码如下:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!-- 网页 --> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:autoLink="web" android:text="@string/webUrl" /> <!-- 邮箱 --> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:autoLink="email" android:text="@string/email" /> <!-- 手机号码 --> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:autoLink="phone" android:text="@string/phoneNumber" /> <!-- 以上全部 --> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:autoLink="all" android:background="#00ff00" android:text="@string/autoAll" /> <!-- 地图地址 --> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:autoLink="map" android:text="@string/mapUrl" /> <!-- 用html显示超连接 --> <TextView android:id="@+id/tvHtml" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>

AddressTextView代码:

package cn.csdn.activity; import android.app.Activity; import android.os.Bundle; import android.text.Html; import android.widget.TextView; public class AddressTextView extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.address); TextView view=(TextView) findViewById(R.id.tvHtml); String string="<a href='#'>这是用html超链接实现的</a>"; view.setText(Html.fromHtml(string)); } }

注意:

android:autoLink=”email” :会出现unsupported action,可能是模拟器bug,须探究

另外使用Html.fromHtml时,超链接只具备外观,不能跳转


谷歌地图:

设置android:autoLink="map"后需要有google地图才可以 否则会报错


文本显示内容处理界面xml的代码:

可以在textView中设置我们想要的任何效果

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="正常的文本内容" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textStyle="italic" android:textColor="#ff0000" android:text="倾斜的带颜色的字体" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#00ff00" android:textStyle="bold" android:textSize="30dp" android:text="加粗,背景颜色,字体30dp" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="使文字显示*的字体"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ffffff" android:text="使文字显示*的字体" android:password="true"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="20dp" android:text="只显示一行字符串超出屏幕为'...'dsfusdiofjdsiofjsdiofjoisdjfiosdjfoisdjfoisdf" android:singleLine="true" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="20dp" android:text="字符串超出屏幕为 换行显示这些 字符串 d" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textScaleX="0.5" android:textColor="#ff0000" android:text="红色字体设置显示文字的间隔为0.5" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textScaleX="2.0" android:textColor="#ff0000" android:text="红色字体设置显示文字的间隔为2.0" /> <TextView android:layout_width="200px" android:layout_height="wrap_content" android:textSize="20dp" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusable="true" android:focusableInTouchMode="true" android:scrollHorizontally="true" android:text="文字滚屏文字跑马灯效果文字滚屏文字跑马灯效果" /> <cn.csdn.activity.BorderTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:padding="10dp" android:text="带边框的文字"/> </LinearLayout>

解释一下跑马灯效果的一些属性:

 
  1. android:ellipsize="marquee"
  2. textview中样式是跑马灯效果。
  3. android:marqueeRepeatLimit="marquee_forever"

循环次数,这里是无限循环,可以根据需要写具体的次数,例如5。

 
  1. android:singleLine="true"

textview中字体单行显示,否则会换行,不会出现跑马灯效果。

 
  1. android:focusable="true"
  2. android:focusableInTouchMode="true"

使textview获取焦点,这样字体就会自动滚动。

上面带边框的BorderTextView是自己定义好的代码如下:

package cn.csdn.activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.widget.TextView; public class BorderTextView extends TextView { public BorderTextView(Context context, AttributeSet attrs) { super(context, attrs); } public void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setColor(android.graphics.Color.GREEN); canvas.drawLine(0, 0, this.getWidth() - 1, 0, paint); canvas.drawLine(0, 0, 0, this.getHeight() - 1, paint); canvas.drawLine(this.getWidth() - 1, 0, this.getWidth() - 1, this.getHeight() - 1, paint); canvas.drawLine(0, this.getHeight() - 1, this.getWidth() - 1, this.getHeight() - 1, paint); } }
写好这段代码只要在xml文件用就行了;


TextView显示图片:


通过设置背景的方式显示
android:background="@drawable/icon"

设置图片在textView的锚点位置
android:drawableBottom="@drawable/icon"
android:drawableTop="@drawable/icon"
android:drawableLeft="@drawable/icon"
android:drawableRight="@drawable/icon"

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/icon" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableTop="@drawable/icon" android:textColor="#ff0000" android:textSize="20dp" android:text="图像在文字上方"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableBottom="@drawable/icon" android:textColor="#ff0000" android:textSize="20dp" android:text="图像在文字下方"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/icon" android:textColor="#ff0000" android:textSize="20dp" android:text="图像在文字左方"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableRight="@drawable/icon" android:textColor="#ff0000" android:textSize="20dp" android:text="图像在文字右方"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/icon" android:textColor="#ff0000" android:textSize="20dp" android:gravity="center" android:text="文字在图片上中间"/> </LinearLayout>ok!!代码到此为止,好多属性需要自己查文档来自己学习,这只是一部分属性!!

大家可以下载源代码来研究一下!!

http://download.csdn.net/detail/rhljiayou/3917103






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值