zoukankan      html  css  js  c++  java
  • android-基础编程-TextView

    TextView是简单而又复杂的控件,简单是使用上,复杂是源代码研究。基础编程这里只讲是如何使用。

    TextView主要分为两种使用方法,一种是xml中不带span的textview,另外一种是Span的textview。

    1.因为是在democoderjoy中使用,这里我们新建一个TextviewActi的activity。

    public class TextViewActi extends Activity {
        @Override
        protected void onCreate(Bun。。。。

    2.直接上布局不带span的布局TextView的使用。

    <TextView
            android:id="@+id/txt1One"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:singleLine="true"
            android:ellipsize="marquee"
            android:marqueeRepeatLimit="marquee_forever"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:text="Textview demo 大家来学习 啊啊 zcx zcx zcx zcx,呵呵呵呵呵呵呵呵~"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:shadowColor="#F9F900"
            android:shadowDx="10.0"
            android:shadowDy="10.0"
            android:shadowRadius="3.0"
            android:text="带阴影的TextView"
            android:textColor="#4A4AFF"
            android:textSize="18sp" />
    
        <TextView
            android:id="@+id/txtOne"
            android:layout_width="200dp"
            android:layout_height="50dp"
            android:textSize="18sp"
            android:gravity="center"
            android:background="@drawable/txt_rectborder"
            android:text="矩形边框的TextView" />
    
        <TextView
            android:id="@+id/txtTwo"
            android:layout_width="200dp"
            android:layout_height="50dp"
            android:layout_marginTop="10dp"
            android:textSize="18sp"
            android:gravity="center"
            android:background="@drawable/txt_radiuborder"
            android:text="圆角边框的TextView" />
    
        <TextView
            android:id="@+id/zhang"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:drawableTop="@mipmap/ic_launcher"
            android:drawableLeft="@mipmap/ic_launcher"
            android:drawableRight="@mipmap/ic_launcher"
            android:drawableBottom="@mipmap/ic_launcher"
            android:drawablePadding="10dp"
            android:text="张全蛋" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="www.baidu.com"
            android:autoLink="web"/>
        <TextView
            android:id="@+id/txtThree"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_marginTop="10dp"
            android:textSize="18sp"
            android:gravity="center"
             />
        <TextView
            android:id="@+id/txtFor"
            android:layout_width="wrap_content"
            android:layout_height="80dp"
    
            android:textSize="16sp"
    
        />
    View Code

    从上到下布局分别代表是跑马灯效果、带阴影的、矩形边框、圆角边框、四周图片、超链接、(span使用)、文字点击效果(span)。

    3.带span的效果采用SpannableStringBuilder和SpannableString这个来使用

    参考代码如下

    TextView t2 = (TextView) findViewById(R.id.txtThree);
    
            SpannableString span = new SpannableString("红色打电话斜体删除线绿色下划线图片:.");
            //1.设置背景色,setSpan时需要指定的flag,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)
            span.setSpan(new ForegroundColorSpan(Color.RED), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            //2.用超链接标记文本
            span.setSpan(new URLSpan("tel:4155551212"), 2, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            //3.用样式标记文本(斜体)
            span.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            //4.用删除线标记文本
            span.setSpan(new StrikethroughSpan(), 7, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            //5.用下划线标记文本
            span.setSpan(new UnderlineSpan(), 10, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            //6.用颜色标记
            span.setSpan(new ForegroundColorSpan(Color.GREEN), 10, 13, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            //7.//获取Drawable资源
            Drawable d = getResources().getDrawable(R.drawable.icon);
            d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
            //8.创建ImageSpan,然后用ImageSpan来替换文本
            ImageSpan imgspan = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
            span.setSpan(imgspan, 18, 19, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
            t2.setText(span);
            t2.setMovementMethod(LinkMovementMethod.getInstance());

    4.还有一个html的TextVIew。参考代码中使用

    TextView t1 = (TextView)findViewById(R.id.txtOne);
            String s1 = "<font color='blue'><b>百度一下,你就知道~:</b></font><br>";
            s1 += "<a href = 'http://www.baidu.com'>百度</a>";
            t1.setText(Html.fromHtml(s1));
            t1.setMovementMethod(LinkMovementMethod.getInstance());

    实验效果如下图:

    参考链接

  • 相关阅读:
    IdentityServer4身份认证授权入门-----客户端凭据、密码模式
    Linux从创建到部署ASP.NET Core项目-----使用阿里云(Centos7)
    Docker入门之快速安装和卸载使用Centos7
    SQLServer系列(二):系统函数之聚合函数
    SpringCloud-day09-Feign与Hystrix整合
    SpringCloud-day08-Hystrix断路器
    SpringCloud-day07-Feign
    SpringCloud-day06-Ribbon负载均衡
    SpringCloud-day05-服务调用Ribbon
    SpringCloud-day04-Eureka高可用集群配置
  • 原文地址:https://www.cnblogs.com/zCoderJoy/p/6384391.html
Copyright © 2011-2022 走看看