package com.blankj.androidutilcode.activity;
import android.content.Context;
import android.graphics.BlurMaskFilter;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.Layout;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;
import com.blankj.androidutilcode.R;
import com.blankj.androidutilcode.base.BaseActivity;
import com.blankj.utilcode.util.SpannableStringUtils;
import com.blankj.utilcode.util.ToastUtils;
/**
* <pre>
* author: Blankj
* blog : http://blankj.com
* time : 2016/09/27
* desc : SpannableString工具类Demo
* </pre>
*/
public class SpannableActivity extends BaseActivity {
@Override
public void initData(Bundle bundle) {
}
@Override
public int bindLayout() {
return R.layout.activity_spannable;
}
@Override
public void initView(Bundle savedInstanceState, View view) {
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
ToastUtils.showShort("事件触发了");
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(Color.BLUE);
ds.setUnderlineText(false);
}
};
TextView tvAboutSpannable = (TextView) findViewById(R.id.tv_about_spannable);
// 响应点击事件的话必须设置以下属性
tvAboutSpannable.setMovementMethod(LinkMovementMethod.getInstance());
tvAboutSpannable.setText(new SpannableStringUtils.Builder()
.appendLine("测试SpannableStringUtils").setBackgroundColor(Color.LTGRAY).setBold().setForegroundColor(Color.YELLOW).setAlign(Layout.Alignment.ALIGN_CENTER)
.append("测试")
.append("前景色").setForegroundColor(Color.GREEN)
.appendLine("背景色").setBackgroundColor(Color.LTGRAY)
.appendLine("测试首行缩进").setLeadingMargin(30, 50)
.appendLine("测试引用").setQuoteColor(Color.BLUE, 10, 10)
.appendLine("测试列表项").setBullet(Color.GREEN, 30, 10)
.appendLine("测试32dp字体").setFontSize(36, true)
.append("测试")
.appendLine("2倍字体").setFontProportion(2)
.append("测试")
.appendLine("横向2倍字体").setFontXProportion(2)
.append("测试")
.append("删除线").setStrikethrough()
.appendLine("下划线").setUnderline()
.append("测试")
.append("上标").setSuperscript()
.appendLine("下标").setSubscript()
.append("测试")
.append("粗体").setBold()
.append("斜体").setItalic()
.appendLine("粗斜体").setBoldItalic()
.appendLine("monospace font").setFontFamily("monospace")
.appendLine("测试自定义字体").setTypeface(Typeface.createFromAsset(getAssets(), "fonts/dnmbhs.ttf"))
.appendLine("测试相反对齐").setAlign(Layout.Alignment.ALIGN_OPPOSITE)
.appendLine("测试居中对齐").setAlign(Layout.Alignment.ALIGN_CENTER)
.appendLine("测试正常对齐").setAlign(Layout.Alignment.ALIGN_NORMAL)
.append("测试小图对齐").setBackgroundColor(Color.LTGRAY)
.append("").setResourceId(R.drawable.shape_spannable_block_low, SpannableStringUtils.ALIGN_TOP)
.append("").setResourceId(R.drawable.shape_spannable_block_low, SpannableStringUtils.ALIGN_CENTER)
.append("").setResourceId(R.drawable.shape_spannable_block_low, SpannableStringUtils.ALIGN_BASELINE)
.append("").setResourceId(R.drawable.shape_spannable_block_low, SpannableStringUtils.ALIGN_BOTTOM)
.appendLine("end").setBackgroundColor(Color.LTGRAY)
.append("测试顶部对齐").setBackgroundColor(Color.GREEN)
.append("image").setResourceId(R.drawable.shape_spannable_block_high, SpannableStringUtils.ALIGN_TOP)
.appendLine("end").setBackgroundColor(Color.GREEN)
.append("居中对齐").setBackgroundColor(Color.LTGRAY)
.append("").setResourceId(R.drawable.shape_spannable_block_high, SpannableStringUtils.ALIGN_CENTER)
.appendLine("end").setBackgroundColor(Color.LTGRAY)
.append("Baseline对齐").setBackgroundColor(Color.GREEN)
.append("").setResourceId(R.drawable.shape_spannable_block_high, SpannableStringUtils.ALIGN_BASELINE)
.appendLine("end").setBackgroundColor(Color.GREEN)
.append("底部对齐").setBackgroundColor(Color.LTGRAY)
.append("").setResourceId(R.drawable.shape_spannable_block_high, SpannableStringUtils.ALIGN_BOTTOM)
.appendLine("end").setBackgroundColor(Color.LTGRAY)
.append("测试")
.appendLine("点击事件").setClickSpan(clickableSpan)
.append("测试")
.appendLine("Url").setUrl("https://github.com/Blankj/AndroidUtilCode")
.append("测试")
.append("模糊").setBlur(3, BlurMaskFilter.Blur.NORMAL)
.create()
);
}
@Override
public void doBusiness(Context context) {
}
@Override
public void onWidgetClick(View view) {
}
}