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代码:
注意:
android:autoLink=”email” :会出现unsupported action,可能是模拟器bug,须探究
另外使用Html.fromHtml时,超链接只具备外观,不能跳转
谷歌地图:
设置android:autoLink="map"后需要有google地图才可以 否则会报错
文本显示内容处理界面xml的代码:
可以在textView中设置我们想要的任何效果
解释一下跑马灯效果的一些属性:
- android:ellipsize="marquee"
- textview中样式是跑马灯效果。
- android:marqueeRepeatLimit="marquee_forever"
循环次数,这里是无限循环,可以根据需要写具体的次数,例如5。
- android:singleLine="true"
textview中字体单行显示,否则会换行,不会出现跑马灯效果。
- android:focusable="true"
- 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