渐变按钮
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dp"
android:color="#ff25c88a" />
<corners android:radius="30dp" />
<padding
android:bottom="15dp"
android:top="15dp"
android:left="120dp"
android:right="120dp" />
<gradient
android:type="linear"
android:useLevel="true"
android:startColor="#ff24c7af"
android:endColor="#ff25c88a"
android:angle="180" />
</shape>
<TextView
android:id="@+id/txt01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_margin="10dp"
android:background="@drawable/txt_bg"
android:textColor="#ffffff"
android:textSize="15sp"
android:text="渐变按钮" />
带图片的Text
<TextView
android:id="@+id/txt02"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txt01"
android:layout_margin="10dp"
android:drawableLeft="@drawable/mini_logo"
android:drawablePadding="10dp"
android:textSize="40sp"
android:text="带图片的Text" />
- 修改图片大小
{
var txt02 = (TextView)FindViewById(Resource.Id.txt02);
var drawables = txt02?.GetCompoundDrawables();
if (drawables == null) return;
drawables[0].SetBounds(0, 0, 60, 60);
txt02.SetCompoundDrawables(drawables[0], drawables[1], drawables[2], drawables[3]);
}
可进行跳转的Text
<TextView
android:id="@+id/txt03"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txt02"
android:layout_margin="10dp"
android:textSize="15sp"
android:text="www.baidu.com"
android:autoLink="web" />
嵌入HTML
<TextView
android:id="@+id/txt04"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txt03"
android:layout_margin="10dp"
android:textSize="15sp"
android:text="嵌入HTML->" />
{
var txt04 = (TextView)FindViewById(Resource.Id.txt04);
var str = "<font color='blue'><b>百度一下,你就知道~:</font>";
str += "<a href = 'http://www.baidu.com'>百度</a>";
txt04?.SetText(Html.FromHtml(txt04.Text + str), TextView.BufferType.Normal);
if (txt04 != null) txt04.MovementMethod = LinkMovementMethod.Instance;
}
多样式文本
<TextView
android:id="@+id/txt05"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txt04"
android:layout_margin="10dp"
android:textSize="15sp"
android:text="这是一段文本" />
{
var txt05 = (TextView)FindViewById(Resource.Id.txt05);
var span = new SpannableString("红色打电话斜体删除线绿色下划线图片:.");
span.SetSpan(new BackgroundColorSpan(Color.Red), 0, 2, SpanTypes.ExclusiveExclusive);
span.SetSpan(new URLSpan("tel:4155551212"), 2, 5, SpanTypes.ExclusiveExclusive);
span.SetSpan(new StyleSpan(TypefaceStyle.BoldItalic), 5, 7, SpanTypes.ExclusiveExclusive);
span.SetSpan(new StrikethroughSpan(), 7, 10, SpanTypes.ExclusiveExclusive);
span.SetSpan(new UnderlineSpan(), 10, 16, SpanTypes.ExclusiveExclusive);
span.SetSpan(new ForegroundColorSpan(Color.Green), 10, 13, SpanTypes.ExclusiveExclusive);
var d = Resources?.GetDrawable(Resource.Drawable.mini_logo);
d?.SetBounds(0, 0, d.IntrinsicWidth, d.IntrinsicHeight);
var imgSpan = new ImageSpan(d, SpanAlign.Baseline);
span.SetSpan(imgSpan, 18, 19, SpanTypes.ExclusiveExclusive);
txt05?.SetText(span, TextView.BufferType.Normal);
if (txt05 != null) txt05.MovementMethod = LinkMovementMethod.Instance;
}
仿朋友圈点赞名单
<TextView
android:id="@+id/txt06"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txt05"
android:layout_margin="10dp"
android:textSize="15sp"
android:text="这是一段文本" />
{
var txt06 = (TextView)FindViewById(Resource.Id.txt06);
var friends = new[]
{
new Friend("Lee", "123-Lee-123"),
new Friend("Prosper", "1234567-Prosper-1234567"),
new Friend("ProsperLee", "1234567890-PLee-1234567890"),
};
txt06?.SetText(PartClick(friends), TextView.BufferType.Normal);
if (txt06 != null) txt06.MovementMethod = LinkMovementMethod.Instance;
}
private class Friend
{
public string _name;
public string _id;
public Friend(string name, string id)
{
_name = name;
_id = id;
}
}
private static SpannableStringBuilder PartClick(Friend[] friends)
{
var ssb = new SpannableStringBuilder();
foreach (var friend in friends)
{
ssb.Append(friend._name + ',');
var start = ssb.Length() - friend._name.Length - 1;
var end = ssb.Length() - 1;
ssb.SetSpan(new TextClick(friend), start, end, SpanTypes.ExclusiveExclusive);
}
ssb.Delete(ssb.Length() - 1, ssb.Length());
return ssb.Append($"等{friends.Length}人觉得很赞!") as SpannableStringBuilder;
}
private class TextClick : ClickableSpan
{
private readonly Friend _friend;
public TextClick(Friend friend)
{
_friend = friend;
}
public override void OnClick(View widget)
{
Toast.MakeText(Application.Context, _friend._id, ToastLength.Long)?.Show();
}
public override void UpdateDrawState(TextPaint ds)
{
base.UpdateDrawState(ds);
ds.Color = Color.Blue;
ds.UnderlineText = true;
}
}
跑马灯
- 方案1:
<TextView
android:id="@+id/txt07"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_below="@id/txt06"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
android:background="#EEEFFF"
android:padding="5dp"
android:text="你整天说着日了狗日了狗,但是你却没有来,呵呵呵呵呵呵呵呵呵呵~"
android:ellipsize="marquee"
android:singleLine="true"/>
{
var txt07 = (TextView)FindViewById(Resource.Id.txt07);
if (txt07 == null) return;
txt07.Selected = true;
}
- 方案2(需要点击一下文本):
<TextView
android:id="@+id/txt07"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_below="@id/txt06"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
android:background="#EEEFFF"
android:padding="5dp"
android:text="你整天说着日了狗日了狗,但是你却没有来,呵呵呵呵呵呵呵呵呵呵~"
android:textIsSelectable="true"
android:ellipsize="marquee"
android:singleLine="true"/>
行间距
<TextView
android:id="@+id/txt08"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txt07"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
android:background="#EEEFFF"
android:padding="5dp"
android:lineSpacingExtra="10dp"
android:lineSpacingMultiplier="2"
android:text="你整天说着日了狗日了狗,但是你却没有来,呵呵呵呵呵呵呵呵呵呵~你整天说着日了狗日了狗,但是你却没有来,呵呵呵呵呵呵呵呵呵呵~你整天说着日了狗日了狗,但是你却没有来,呵呵呵呵呵呵呵呵呵呵~" />
属性总结
属性 | 描述 |
---|
layout_width | 宽度 | layout_height | 高度 | gravity | 对齐方式 | text | 文本内容 | textColor | 文本颜色 | textStyle | 文本样式(粗体斜体等) | background | 背景 | textSize | 字号 | shadowColor | 设置阴影颜色,需要与shadowRadius一起使用哦 | shadowRadius | 设置阴影的模糊程度,设为0.1就变成字体颜色了,建议使用3.0 | shadowDx | 设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置 | shadowDy | 设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置 | drawableLeft | 带图片的文本 | drawablePadding | 图片距离文字的padding | autoLink | 识别链接等属性 | textIsSelectable | 是否可对文本进行选择 | lineSpacingExtra | 行间距 | lineSpacingMultiplier | 行间距(倍数) | singleLine | 是否换行 | ellipsize | start 省略号显示在开头 | ellipsize | end 省略号显示在结尾 | ellipsize | middle 省略号显示在中间 | ellipsize | marquee 以横向滚动方式显示(需获得当前焦点时) |
|