提交 72e3d996 编写于 作者: B Blankj

see 10/24 log

上级 1fca9b5c
......@@ -3,18 +3,13 @@ package com.blankj.androidutilcode.feature.core.span;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.BitmapShader;
import android.graphics.BlurMaskFilter;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Shader;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.text.Layout;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
......@@ -106,57 +101,57 @@ public class SpanActivity extends BaseBackActivity {
textSize = tvAboutSpan.getTextSize();
density = getResources().getDisplayMetrics().density;
initAnimSpan();
startAnim();
// initAnimSpan();
// startAnim();
tvAboutSpan.setText(new SpanUtils()
.appendLine("SpanUtils").setBackgroundColor(Color.LTGRAY).setBold().setForegroundColor(Color.YELLOW).setAlign(Layout.Alignment.ALIGN_CENTER)
.appendLine("前景色").setForegroundColor(Color.GREEN)
.appendLine("背景色").setBackgroundColor(Color.LTGRAY)
.appendLine("行高顶部对齐").setLineHeight(2 * lineHeight, SpanUtils.ALIGN_TOP).setBackgroundColor(Color.GREEN)
.appendLine("行高居中对齐").setLineHeight(2 * lineHeight, SpanUtils.ALIGN_CENTER).setBackgroundColor(Color.LTGRAY)
.appendLine("行高底部对齐").setLineHeight(2 * lineHeight, SpanUtils.ALIGN_BOTTOM).setBackgroundColor(Color.GREEN)
.appendLine("测试段落缩,首行缩进两字,其他行不缩进").setLeadingMargin((int) textSize * 2, 10).setBackgroundColor(Color.GREEN)
.appendLine("测试引用,后面的字是为了凑到两行的效果").setQuoteColor(Color.GREEN, 10, 10).setBackgroundColor(Color.LTGRAY)
.appendLine("测试列表项,后面的字是为了凑到两行的效果").setBullet(Color.GREEN, 20, 10).setBackgroundColor(Color.LTGRAY).setBackgroundColor(Color.GREEN)
.appendLine("32dp 字体").setFontSize(32, true)
.appendLine("2 倍字体").setFontProportion(2)
.appendLine("横向 2 倍字体").setFontXProportion(1.5f)
.appendLine("删除线").setStrikethrough()
.appendLine("下划线").setUnderline()
.append("测试").appendLine("上标").setSuperscript()
.append("测试").appendLine("下标").setSubscript()
.appendLine("粗体").setBold()
.appendLine("斜体").setItalic()
.appendLine("粗斜体").setBoldItalic()
.appendLine("monospace 字体").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("测试").appendLine("点击事件").setClickSpan(clickableSpan)
.append("测试").appendLine("Url").setUrl("https://github.com/Blankj/AndroidUtilCode")
.append("测试").appendLine("模糊").setBlur(3, BlurMaskFilter.Blur.NORMAL)
.appendLine("颜色渐变").setShader(new LinearGradient(0, 0,
64 * density * 4, 0,
getResources().getIntArray(R.array.rainbow),
null,
Shader.TileMode.REPEAT)).setFontSize(64, true)
.appendLine("图片着色").setFontSize(64, true).setShader(new BitmapShader(BitmapFactory.decodeResource(getResources(), R.drawable.span_cheetah),
Shader.TileMode.REPEAT,
Shader.TileMode.REPEAT))
.appendLine("阴影效果").setFontSize(64, true).setBackgroundColor(Color.BLACK).setShadow(24, 8, 8, Color.WHITE)
.append("小图").setBackgroundColor(Color.GREEN)
.appendImage(R.drawable.shape_spannable_block_low, SpanUtils.ALIGN_TOP)
.append("顶部").setBackgroundColor(Color.GREEN)
.appendImage(R.drawable.shape_spannable_block_low, SpanUtils.ALIGN_CENTER)
.append("居中").setBackgroundColor(Color.GREEN)
.appendImage(R.drawable.shape_spannable_block_low, SpanUtils.ALIGN_BASELINE)
.append("底部").setBackgroundColor(Color.GREEN)
.appendImage(R.drawable.shape_spannable_block_low, SpanUtils.ALIGN_BOTTOM)
.appendLine("对齐").setBackgroundColor(Color.GREEN)
// .appendLine("SpanUtils").setBackgroundColor(Color.LTGRAY).setBold().setForegroundColor(Color.YELLOW).setAlign(Layout.Alignment.ALIGN_CENTER)
// .appendLine("前景色").setForegroundColor(Color.GREEN)
// .appendLine("背景色").setBackgroundColor(Color.LTGRAY)
// .appendLine("行高顶部对齐").setLineHeight(2 * lineHeight, SpanUtils.ALIGN_TOP).setBackgroundColor(Color.GREEN)
// .appendLine("行高居中对齐").setLineHeight(2 * lineHeight, SpanUtils.ALIGN_CENTER).setBackgroundColor(Color.LTGRAY)
// .appendLine("行高底部对齐").setLineHeight(2 * lineHeight, SpanUtils.ALIGN_BOTTOM).setBackgroundColor(Color.GREEN)
// .appendLine("测试段落缩,首行缩进两字,其他行不缩进").setLeadingMargin((int) textSize * 2, 10).setBackgroundColor(Color.GREEN)
// .appendLine("测试引用,后面的字是为了凑到两行的效果").setQuoteColor(Color.GREEN, 10, 10).setBackgroundColor(Color.LTGRAY)
// .appendLine("测试列表项,后面的字是为了凑到两行的效果").setBullet(Color.GREEN, 20, 10).setBackgroundColor(Color.LTGRAY).setBackgroundColor(Color.GREEN)
// .appendLine("32dp 字体").setFontSize(32, true)
// .appendLine("2 倍字体").setFontProportion(2)
// .appendLine("横向 2 倍字体").setFontXProportion(1.5f)
// .appendLine("删除线").setStrikethrough()
// .appendLine("下划线").setUnderline()
// .append("测试").appendLine("上标").setSuperscript()
// .append("测试").appendLine("下标").setSubscript()
// .appendLine("粗体").setBold()
// .appendLine("斜体").setItalic()
// .appendLine("粗斜体").setBoldItalic()
// .appendLine("monospace 字体").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("测试").appendLine("点击事件").setClickSpan(clickableSpan)
// .append("测试").appendLine("Url").setUrl("https://github.com/Blankj/AndroidUtilCode")
// .append("测试").appendLine("模糊").setBlur(3, BlurMaskFilter.Blur.NORMAL)
// .appendLine("颜色渐变").setShader(new LinearGradient(0, 0,
// 64 * density * 4, 0,
// getResources().getIntArray(R.array.rainbow),
// null,
// Shader.TileMode.REPEAT)).setFontSize(64, true)
// .appendLine("图片着色").setFontSize(64, true).setShader(new BitmapShader(BitmapFactory.decodeResource(getResources(), R.drawable.span_cheetah),
// Shader.TileMode.REPEAT,
// Shader.TileMode.REPEAT))
// .appendLine("阴影效果").setFontSize(64, true).setBackgroundColor(Color.BLACK).setShadow(24, 8, 8, Color.WHITE)
//
// .append("小图").setBackgroundColor(Color.GREEN)
// .appendImage(R.drawable.shape_spannable_block_low, SpanUtils.ALIGN_TOP)
// .append("顶部").setBackgroundColor(Color.GREEN)
// .appendImage(R.drawable.shape_spannable_block_low, SpanUtils.ALIGN_CENTER)
// .append("居中").setBackgroundColor(Color.GREEN)
// .appendImage(R.drawable.shape_spannable_block_low, SpanUtils.ALIGN_BASELINE)
// .append("底部").setBackgroundColor(Color.GREEN)
// .appendImage(R.drawable.shape_spannable_block_low, SpanUtils.ALIGN_BOTTOM)
// .appendLine("对齐").setBackgroundColor(Color.GREEN)
.appendImage(R.drawable.shape_spannable_block_high, SpanUtils.ALIGN_TOP)
.append("大图").setBackgroundColor(Color.LTGRAY)
......
......@@ -6,8 +6,8 @@ ext {
compileSdkVersion: 27,
minSdkVersion : 14,
targetSdkVersion : 27,
versionCode : 1_021_000,
versionName : '1.21.0'// E.g. 1.9.72 => 1,009,072
versionCode : 1_021_001,
versionName : '1.21.1'// E.g. 1.9.72 => 1,009,072
]
versionConfig = [
......
* `18/10/24` [fix] SpanUtils#appendImage on VIVO. Publish v1.21.1.
* `18/10/16` [add] BusUtils, DeviceUtils#isAdbEnabled. Publish v1.21.0.
* `18/09/29` [fix] ToastUtils which causes crash in the some devices of Xiaomi. Publish v1.20.4.
* `18/09/13` 修复 ToastUtils 在小米手机显示 Toast 带有 App 名,发布 1.20.3
......
......@@ -130,19 +130,16 @@ public final class SpanUtils {
private SpannableStringBuilder mBuilder;
private int mType;
private int mType;
private final int mTypeCharSequence = 0;
private final int mTypeImage = 1;
private final int mTypeSpace = 2;
private CharSequence fontSizeTagCS = "[SpanUtils]";
public SpanUtils() {
mBuilder = new SpannableStringBuilder();
mText = "";
mType = -1;
setDefault();
append(fontSizeTagCS);
}
private void setDefault() {
......@@ -181,17 +178,6 @@ public final class SpanUtils {
spaceSize = -1;
}
/**
* The character used to get the font size (span start with image)
*
* @param fontSizeTagCS The character
* @return the single {@link SpanUtils} instance
*/
public SpanUtils setFontSizeTagCS(CharSequence fontSizeTagCS) {
this.fontSizeTagCS = fontSizeTagCS;
return this;
}
/**
* Set the span of flag.
*
......@@ -765,7 +751,7 @@ public final class SpanUtils {
*/
public SpannableStringBuilder create() {
applyLast();
return mBuilder.delete(0, fontSizeTagCS.length());
return mBuilder;
}
private void applyLast() {
......@@ -885,6 +871,10 @@ public final class SpanUtils {
private void updateImage() {
int start = mBuilder.length();
if (start == 0) {
mBuilder.append(Character.toString((char) 2));
start = 1;
}
mBuilder.append("<img>");
int end = start + 5;
if (imageBitmap != null) {
......
......@@ -6,10 +6,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
/**
* <pre>
* author: Blankj
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册