标签: spannablestring

如何检测 TextView 是否包含 SpannableStringBuilder

如何找出是否TextView包含SpannableStringBuilder而不是纯文本?我需要更改 的文本大小TextView,但如果它包含纯文本或跨度,则不同。

TextView textView1;
textView1.setText("BlahBlahBlah");

TextView textView2;
final SpannableStringBuilder sb = new SpannableStringBuilder(title);
                                                        final ForegroundColorSpan fcs = new ForegroundColorSpan(Color.rgb(255,255,255));
                                                        sb.setSpan(fcs,  bookname.length(),title.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
textView2.setText(sb);
Run Code Online (Sandbox Code Playgroud)

现在我需要一个这样的方法:textView1.hasSpans()

android textview spannablestring

1
推荐指数
1
解决办法
1248
查看次数

Android - Ellipsize并在Textview中截断所有长网址

在我的Android应用程序的textview中,如果URL的长度大于某个限制,我想省略所有URL(已经使用可点击范围链接)以获得省略号(或截断).

这种行为的灵感来自twitter和facebook.

例如,链接http://www.getfluttr.com/flap/3rL7/now-only-if-modi-would-listen-to-opposition-party-/它应该如下所示:

在此输入图像描述 (截图来源:推特)

我知道这必须涉及跨度.我似乎无法找到一个允许我在保持链接的同时替换文本的跨度.

android ellipsis textview spannablestring

1
推荐指数
1
解决办法
876
查看次数

可以在片段中设置SpannableString吗?

如果可以将SpannableString设置为片段的参数,怎么办?

        Bundle args = new Bundle();
        args.putString(PagesFragment.ARG_SECTION_NUMBER, Page[position]);
        fragment.setArguments(args);
        return fragment;
Run Code Online (Sandbox Code Playgroud)

在此示例代码中需要更改什么?

android bundle android-fragments spannablestring

0
推荐指数
1
解决办法
863
查看次数

图像未显示在带有图像的SpannableString中

import static android.text.TextUtils.join;

import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ImageSpan;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List; 

public class MainActivity extends AppCompatActivity {

TextView testText;
TextView testText2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    testText = (TextView) findViewById(R.id.text1);
    testText2 = (TextView) findViewById(R.id.text2);

    List<SpannableString> refinements = new ArrayList<>();
    refinements.add(getFilterWithIcon("100", R.drawable.ic_feature_bed_s));
    refinements.add(new SpannableString("Testing text"));

    //Text without icon
    testText.setText(join(" | ", refinements));
    //Text with icon 
    testText2.setText(getFilterWithIcon("100", R.drawable.ic_feature_bed_s));

}

private SpannableString getFilterWithIcon(String stringValue, int icon) {
    Drawable …
Run Code Online (Sandbox Code Playgroud)

android spannablestring

0
推荐指数
1
解决办法
1526
查看次数

ReplacementSpan 在 TextView 中剪切线

我需要为 TextView 中的文本使用自定义下划线。我使用 ReplacementSpan 来做到这一点。但它会在第一行的末尾剪切文本。

这是我的CustomUnderlineSpan课:

public class CustomUnderlineSpan extends ReplacementSpan {
    private int underlineColor;
    private int textColor;


    public CustomUnderlineSpan(int underlineColor, int textColor) {
        super();
        this.underlineColor = underlineColor;
        this.textColor = textColor;
    }

    @Override
    public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint) {
        paint.setStrokeWidth(3F);

        paint.setColor(textColor);
        canvas.drawText(text, start, end, x, y, paint);

        paint.setColor(underlineColor);
        int length = (int) paint.measureText(text.subSequence(start, end).toString());
        canvas.drawLine(x, bottom, length + x, bottom, paint);
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

string android textview android-edittext spannablestring

0
推荐指数
1
解决办法
858
查看次数