zoukankan      html  css  js  c++  java
  • Android基础控件TextView

    1、常用属性

            <TextView
                android:id="@+id/text11"    //组件id
                android:layout_width="match_parent" //宽度
                android:gravity="center" //内容对齐方式
                android:layout_height="100dp" //高度
                android:background="@drawable/back" //背景
                android:autoLink="web" //web,phone等连接
                android:text="www.baidu.com"/> //文本
                android:textColor="@color/colorPrimaryDark" //文本颜色
                android:focusable="true" //键盘状态下显示焦点
                android:focusableInTouchMode="true" //触屏下显示焦点
                android:marqueeRepeatLimit="marquee_forever" //重复滚动的次数
                android:ellipsize="marquee"  //文本显示模式 省略开头、中间、结尾、跑马灯
                android:singleLine="true"  //是否单行显示
              />

    2、简单使用

    xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".TextViewActivity">
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingTop="5dp"
            android:paddingBottom="5dp"
            android:paddingRight="5dp"
            android:paddingLeft="5dp"
            android:gravity="center_horizontal">
    
            <TextView
                android:id="@+id/text11"
                android:layout_width="match_parent"
                android:gravity="center"
                android:layout_height="100dp"
                android:background="@drawable/back"
                android:autoLink="web"
                android:text="www.baidu.com"/>
            <TextView
                android:id="@+id/text22"
                android:layout_centerHorizontal="true"
                android:layout_width="150dp"
                android:text="你   好"
                android:gravity="center"
                android:layout_height="wrap_content"
                android:layout_below="@id/text11"
                android:background="@drawable/shape_back_values"/>
            <TextView
                android:id="@+id/text33"
                android:layout_width="match_parent"
                android:gravity="center"
                android:layout_height="100dp"
                android:layout_below="@id/text22"
                android:layout_marginTop="5dp"
                android:background="#ffffff"/>
    
            <TextView
                android:id="@+id/text44"
                android:layout_width="match_parent"
                android:gravity="center"
                android:layout_height="100dp"
                android:layout_below="@id/text33"
                android:layout_marginTop="5dp"
                android:background="@drawable/back"/>
            <TextView
                android:id="@+id/text55"
                android:layout_width="match_parent"
                android:gravity="center"
                android:layout_height="100dp"
                android:layout_below="@id/text44"
                android:textColor="@color/colorPrimaryDark"
                android:layout_marginTop="5dp"
                android:background="#e2e2e2"
                android:text="手机卡打飞机as类方法的看反馈的反馈打开了反馈的反馈上课啦反馈代理费路径"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:marqueeRepeatLimit="marquee_forever"
                android:ellipsize="marquee"
                android:singleLine="true"
              />
    
    
        </RelativeLayout>
    </android.support.constraint.ConstraintLayout>

    Java文件

    public class TextViewActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_text_view);
    
            TextView t3 = (TextView)findViewById(R.id.text33);
            SpannableString span  = new SpannableString("红色打电话斜体删除线绿色下划线图片:.");
            span.setSpan(new ForegroundColorSpan(Color.RED),0,2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
            span.setSpan(new URLSpan("tel:1421323123"),2,5,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            span.setSpan(new StyleSpan(Typeface.BOLD_ITALIC),5,7,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
            span.setSpan(new StrikethroughSpan(),7,10,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            span.setSpan(new UnderlineSpan(),10,16,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            span.setSpan(new ForegroundColorSpan(Color.GREEN),10,13,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            Drawable d = ContextCompat.getDrawable(this,R.drawable.back);
            d.setBounds(0,0,50,50);
            ImageSpan imgSpan = new ImageSpan(d,ImageSpan.ALIGN_BASELINE);
            span.setSpan(imgSpan,18,19, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            t3.setText(span);
    
    //        BackgroundColorSpan 背景色
    //        ClickableSpan 文本可点击,有点击事件
    //        ForegroundColorSpan 文本颜色(前景色)
    //        MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)
    //        MetricAffectingSpan 父类,一般不用
    //        RasterizerSpan 光栅效果
    //        StrikethroughSpan 删除线(中划线)
    //        SuggestionSpan 相当于占位符
    //        UnderlineSpan 下划线
    //        AbsoluteSizeSpan 绝对大小(文本字体)
    //        DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。
    //        ImageSpan 图片
    //        RelativeSizeSpan 相对大小(文本字体)
    //        ReplacementSpan 父类,一般不用
    //        ScaleXSpan 基于x轴缩放
    //        StyleSpan 字体样式:粗体、斜体等
    //        SubscriptSpan 下标(数学公式会用到)
    //        SuperscriptSpan 上标(数学公式会用到)
    //        TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)
    //        TypefaceSpan 文本字体
    //        URLSpan 文本超链接
    
            TextView t4 = (TextView)findViewById(R.id.text44);
            StringBuilder sb = new StringBuilder();
            for (int i=0;i<20;i++){
                sb.append("好友" + i + ",");
            }
            String user =sb.substring(0,sb.lastIndexOf(",")).toString();
            t4.setMovementMethod(LinkMovementMethod.getInstance());
            t4.setText(addClickPart(user),TextView.BufferType.SPANNABLE);
    
        }
        //定义一个点击每个部分文字的处理方法
        private SpannableStringBuilder addClickPart(String str) {
            //赞的图标,这里没有素材,就找个笑脸代替下~
            Drawable d = ContextCompat.getDrawable(this,R.drawable.back);
            d.setBounds(0,0,50,50);
            ImageSpan imgspan = new ImageSpan(d,ImageSpan.ALIGN_BASELINE);
            SpannableString spanStr = new SpannableString("p.");
            spanStr.setSpan(imgspan, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    
            //创建一个SpannableStringBuilder对象,连接多个字符串
            SpannableStringBuilder ssb = new SpannableStringBuilder(spanStr);
            ssb.append(str);
            String[] likeUsers = str.split(",");
            if (likeUsers.length > 0) {
                for (int i = 0; i < likeUsers.length; i++) {
                    final String name = likeUsers[i];
                    final int start = str.indexOf(name) + spanStr.length();
                    ssb.setSpan(new ClickableSpan() {
                        @Override
                        public void onClick(View widget) {
                            Toast.makeText(TextViewActivity.this, name,
                                    Toast.LENGTH_SHORT).show();
                        }
    
                        @Override
                        public void updateDrawState(TextPaint ds) {
                            super.updateDrawState(ds);
                            //删除下划线,设置字体颜色为蓝色
                            ds.setColor(Color.BLUE);
                            ds.setUnderlineText(false);
                        }
                    },start,start + name.length(),0);
                }
            }
            return ssb.append("等" + likeUsers.length + "个人觉得很赞");
        }
    
    }

    效果图

  • 相关阅读:
    Windows10:家庭版如何设置开机自动登录
    Windows10:常用快捷键(转载)
    Windows10:找回传统桌面的系统图标
    MyBatis之XML映射文件详解
    MyBatis之核心对象及配置文件详解
    Java用Jsoup登录网站,以JSON格式提交(POST)数据,处理JSON格式返回结果,并将处理结果保存到系统剪贴板
    (转)总结.Net下后端的几种请求方式(WebClient、WebRequest、HttpClient)
    jvisualvm.exe 查看堆栈分配
    Hutool 常用的工具类和方法
    StringRedisTemplate 常用方法
  • 原文地址:https://www.cnblogs.com/xianfeng-zhang/p/8036013.html
Copyright © 2011-2022 走看看