Android开发经验谈Android技术知识Android开发

View----TextView初步认识

2018-05-02  本文已影响66人  pgydbh

目录

无标题.png

说明

textview用的特别多,所以使用的方式也很多,这里选择七种初步认识textView的基本用法。

省略样式

属性 效果
end 结尾省略
start 开头省略
middle 中间省略
none 不省略
marquzz 帮助设置跑马灯效果
示例代码
android:ellipsize="end"
跑马灯示例

xml

android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"

设置选中

txt = findViewById(R.id.txt);
txt.setSelected(true);

自动链接

设置autolink属性 自动识别字符串内容中对应的字段

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/txt"
    android:textSize="20sp"
    android:autoLink="email"
    android:text="我的邮箱 2xxxxxxxxx@qq.com"/>

行高控制

属性 含义
lineSpacingMultiplier 0时,lineSpacingExtra的值=行间距+字高度(脑补)
lineSpacingExtra 行高
layout_height 行数*行高
paddingTop (行高-字高)/2
paddingBottom (行高-字高)/2
textSize 字高(通常1sp=1dp)
android:lineSpacingMultiplier="0"
android:layout_height="200dp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:lineSpacingExtra="50dp"
android:textSize="20sp"

阴影效果

属性 含义
shadowColor 阴影颜色
shadowRadius 阴影半径,越大阴影越模糊
shadowDx 阴影相对于原文本横向相对距离
shadowDy 阴影相对于原文本纵向相对距离
android:shadowColor="#ff000000"
android:shadowRadius="10"
android:shadowDx="30"
android:shadowDy="30"

自定义字体

Android 8.0之前

1.建立assets文件夹,放入字体文件
2.使用代码

Typeface typeFace = Typeface.createFromAsset(getAssets(), "huawenhupo.ttf");
txt.setTypeface(typeFace);
Android 8.0之后

1.res下建立font文件夹,放入字体文件
2.使用代码,设置fontFamily

<TextView
    android:id="@+id/txt"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:fontFamily="@font/huawenhupo"
    android:gravity="center_horizontal"
    android:text="主页" />

中间可点击

SpannableString spannableString = new SpannableString("测试《可点击文字》");
spannableString.setSpan(new ClickableSpan() {
    @Override
    public void onClick(View view) {
        Toast.makeText(TestDemo.this, "触发了点击事件", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void updateDrawState(TextPaint ds) {
        ds.setColor(Color.RED);//设置字体颜色
        ds.setUnderlineText(true);//设置没有下划线
    }
}, 3, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.setText(spannableString);
txt.setHighlightColor(getResources().getColor(android.R.color.transparent));//去掉背景
txt.setMovementMethod(LinkMovementMethod.getInstance());//必须设置不然点击无效

图文混排

final String string = "<p><img alt=\"laugh\" height=\"23\" src=\"http://img3.imgtn.bdimg.com/it/u=3140599426,288343775&fm=26&gp=0.jpg\" " +
        "title=\"laugh\" width=\"23\" /> 简单的图文混排" +
        "<img alt=\"cheeky\" height=\"23\" src=\"http://img3.imgtn.bdimg.com/it/u=3140599426,288343775&fm=26&gp=0.jpg\" " +
        "title=\"cheeky\" width=\"23\" />这是展示内容</p>";

final Html.ImageGetter imgGetter = new Html.ImageGetter() {
    public Drawable getDrawable(String source) {
        Drawable drawable = null;
        URL url = null;
        try {
            url = new URL(source);
            drawable = Drawable.createFromStream(url.openStream(), "img");
        } catch (Exception e) {
            return null;
        }
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable
                .getIntrinsicHeight());
        return drawable;
    }
};

new Thread(new Runnable() {
    @Override
    public void run() {
        final Spanned text = Html.fromHtml(string, imgGetter, null);
        handler.post(new Runnable() {
            @Override
            public void run() {
                txt.setText(text);
            }
        });
    }
}).start();![无标题.png](https://img.haomeiwen.com/i11678839/00c82a5383747958.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

上一篇下一篇

猜你喜欢

热点阅读