android 为TextView添加边框

今天需要在TextView上面添加一个边框,但是TextView本身不支持边框,所以只能采用其他方式,在网上查询了一下,主要有三种方式可以实现1.带有边框的透明图片2.使用xml的shape设置3继承TextView覆写onDraw方法。

方法一:

带有透明图片的背景图,这个没有什么好将的,自己制作一个就行 ,然后设置background就可以了

方法二:

通过shape来设置背景图片

首先一个textview_border.xml文件放在drawable文件夹里面

[html] view plaincopy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
  3. <solid android:color="#ffffff" />
  4. <stroke android:width="1dip" android:color="#4fa5d5"/>
  5. </shape>

为要添加边框的TextView添加一个background

android:background="@drawable/textview_border"

效果图片如下:

方法三:

编写一个继承TextView类的自定义组件,并在onDraw事件方法中画边框。

[java] view plaincopy

  1. package com.example.test;
  2. import android.annotation.SuppressLint;
  3. import android.content.Context;
  4. import android.graphics.Canvas;
  5. import android.graphics.Paint;
  6. import android.util.AttributeSet;
  7. import android.widget.TextView;
  8. @SuppressLint("DrawAllocation")
  9. public class BorderTextView extends TextView{
  10. public BorderTextView(Context context) {
  11. super(context);
  12. }
  13. public BorderTextView(Context context, AttributeSet attrs) {
  14. super(context, attrs);
  15. }
  16. private int sroke_width = 1;
  17. @Override
  18. protected void onDraw(Canvas canvas) {
  19. Paint paint = new Paint();
  20. //  将边框设为黑色
  21. paint.setColor(android.graphics.Color.BLACK);
  22. //  画TextView的4个边
  23. canvas.drawLine(0, 0, this.getWidth() - sroke_width, 0, paint);
  24. canvas.drawLine(0, 0, 0, this.getHeight() - sroke_width, paint);
  25. canvas.drawLine(this.getWidth() - sroke_width, 0, this.getWidth() - sroke_width, this.getHeight() - sroke_width, paint);
  26. canvas.drawLine(0, this.getHeight() - sroke_width, this.getWidth() - sroke_width, this.getHeight() - sroke_width, paint);
  27. super.onDraw(canvas);
  28. }
  29. }

效果图如下:

使用的Xml布局内容如下:

[html] view plaincopy

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3. android:layout_width="match_parent"
    4. android:layout_height="match_parent" >
    5. <TextView
    6. android:layout_width="120dp"
    7. android:layout_height="80dp"
    8. android:background="@drawable/textview_border"
    9. android:text="方法二"
    10. android:textColor="#FF000000"
    11. android:id="@+id/test"
    12. android:gravity="center"
    13. android:layout_alignParentTop="true"
    14. android:layout_marginTop="20dp"
    15. android:layout_centerHorizontal="true"
    16. />
    17. <com.example.test.BorderTextView
    18. android:layout_width="120dp"
    19. android:layout_height="80dp"
    20. android:text="方法三"
    21. android:id="@+id/test3"
    22. android:gravity="center"
    23. android:layout_alignParentBottom="true"
    24. android:layout_marginBottom="20dp"
    25. android:layout_centerHorizontal="true"
    26. ></com.example.test.BorderTextView>
    27. </RelativeLayout>

android 为TextView添加边框

时间: 2024-10-02 21:36:25

android 为TextView添加边框的相关文章

Android 给TextView添加点击事件

首先设定TextView的clickable属性为true. 可以在布局文件中进行设定,比如: <TextView android:id="@+id/phone" android:clickable="true" --------->设定此属性 android:layout_marginLeft="10dp" android:layout_below="@id/address" android:layout_toR

android中TextView 添加ClickableSpan后点击选中文字背景问题

TextView中的setHighlightColor(int color)用于设置选中文字背景色高亮显示. 比如以下: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FrameLayout frameLayout = new FrameL

Android供TextView添加多个点击文字

我们使用社会性软件的过程中会或多或少像别人的帖子点,图. : 能够看到用户页面显示出来的仅仅是点了赞的用户的名称,点击这些名称能够进入到该用户的主页.我们就来实现相似的效果.直接上代码吧. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView mTextVi

Android中TextView添加删除线

项目中的需求~~~~ 商城中物品的一个本身价格,还有一个就是优惠价格...需要用到一个删除线. public class TestActivity extends Activity { private TextView tv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色

实现下划线及颜色设置: public class AtActivity extends Activity { LinearLayout ll; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); l

EditText添加边框

首先准备两张图片,一张是EditText获得焦点后的边框背景,一张是没有获得焦点时的背景,注意制作成9.png样式的图片,然后在drawable里添加一个selector_edittext_bg.xml文件,内容如下: <?xml version="1.0" encoding="utf-8"?><selectorxmlns:android="http://schemas.android.com/apk/res/android"&

android TextView加边框

为TextView加边框,需要在drawable建xml文件,里面设置shape来设置文本框的特殊效果. <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 实心 --> <solid android:color="@andr

Android给TextView和EditText等控件设置透明背景、圆角边框

第一种方法:在drawable文件夹下新建一个文件设置背景样式 代码: 在drawable文件夹下面新建textviewborder.xml <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#80858

Android中实现为TextView添加多个可点击的文本

这篇文章主要介绍了Android中实现为TextView添加多个可点击的文本,可实现类似Android社交软件显示点赞用户并通过用户名称进入该用户主页的功能,是非常实用的技巧,需要的朋友可以参考下.具体如下: 很多时候我们在使用社交软件的过程中多多少少会为别人的帖子点赞,如下图所示: 可以看到用户页面显示出来的只是点了赞的用户的名称,点击这些名称可以进入到该用户的主页.下面我们就来实现类似的效果. 具体代码如下: 1 @Override 2 protected void onCreate(Bun