Articles of textview

我的spannable怎么没有显示?

背景 我想在TextView上使用一个简单的SpannableString ,基于我发现的一个UnderDotSpan类( 这里 )。 原来的UnderDotSpan只是在文本下面放置一个特定大小和颜色的点(不重叠)。 我正在尝试的是先正常使用它,然后使用自定义的drawable而不是点。 问题 与正常的跨度使用相反,这只是不显示任何东西。 甚至没有文字。 这是如何完成一个正常的跨度: val text = "1" val timeSpannable = SpannableString(text) timeSpannable.setSpan(ForegroundColorSpan(0xff00ff00.toInt()), 0, text.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) textView.setText(timeSpannable); 它将在TextView中显示一个绿色的“1”。 但是,当我尝试下一个spannable,它(整个TextView的内容:文本和点)根本不显示: val text = "1" val spannable = SpannableString(text) spannable.setSpan(UnderDotSpan(this@MainActivity, 0xFF039BE5.toInt(), textView.currentTextColor), 0, text.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) textView.setText(spannable, TextView.BufferType.SPANNABLE) // this also didn't work: textView.setText(spannable) 奇怪的是,在我使用的一个项目中,它在RecyclerView中工作正常,而在另一个项目中,它却没有。 这里是UnderDotSpan的代码: class UnderDotSpan(private val mDotSize: Float, […]

TextView的风格和android:textAppearance属性有什么区别?

如果我将我的TextView定义为: <TextView style="@android:style/TextAppearance.DeviceDefault.Large" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> 这跟做的基本一样: <TextView android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> 我知道style是一种更广泛的限定词(即不能在android:textAppearance设置所有属性),但是这引发了一个问题:为什么要这样做? 使用android:textAppearance的style有什么优势吗?

在textview中显示的最后一个字

我要在Android应用程序的几个页面上显示一个完整的文本文档。 每个页面都包含一个负责显示文本的TextView控件。 它还包含一个下一个button,它负责更新文本视图,并按照从上次显示的部分结束的文本开始。 问题是我如何findTextView的可显示区域中最后显示的单词? 注意:在这个应用程序中,textView不应被滚动或使用椭圆大小。 还必须指出,文字大小可以增加或减less。 要更好地了解情况:要显示的示例文本: 这是全文。 在第一页它刚刚结束在这里 ,必须从这里跟着。 这是它的显示示例。 问题是如何find“在这里”作为最后一个字显示在第1页?

android 3(API <= 11)组件中的新的可选TextView

经过漫长而耗时的search,我无法find一个组件,可以在textview中为android API级别<= 11select文本。 我写了这个组件可能对你有帮助: public class SelectableTextView extends TextView { public static int _SelectedBackgroundColor = 0xffA6D4E1; public static int _SelectedTextColor = 0xff000000; private OnTouchListener lastOnTouch; protected int textOffsetStart; protected int textOffsetEnd; private OnLongClickListener lastOnLongClick; protected boolean longCliked; protected boolean isDowned; protected int textSelectedEnd; protected int textSelectedStart; private static SelectableTextView lastInstance; public SelectableTextView(Context context) { super(context); […]

带有背景颜色和行间距的TextView

我想显示如下的文字… 我的编码如下: SpannableString sText = new SpannableString(text); sText.setSpan(new BackgroundColorSpan(Color.YELLOW), 0, sText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); holder.txtText.setLineSpacing(0, 1.5f); textView.setText(sText);

如何获得文本的最大行数

如何获得可以在TextView中写入的最大行数? 我试过这个: DisplayMetrics metrics = new DisplayMetrics (); getWindowManager (). getDefaultDisplay (). getMetrics (metrics); float width = metrics.widthPixels; float height = metrics.heightPixels; int lines = (int) (height / textView.getLineHeight ()); System.out.println (lines); 但是,这个变体给出了错误的信息。

两个具有相同ID的XML元素

我试图以完全相同的方式修改两个TextViews。 我想我可以给他们相同的ID和findViewById()和setText()方法改变这两个TextViews在两行。 但似乎只有一个TextView被改变。 有没有办法做到这一点? 或者我必须为每个元素做不同的ID,通过findViewById()方法获取每个元素并设置它的文本?

Android小工具:如何在运行时将视图添加到RemoteViews

我想在运行时将线性布局的文本视图添加到我的小部件。 我做了如下: LinearLayout l = new LinearLayout(context); for (int i = 0; i < 10; i++) { TextView t = new TextView(context); t.setText("Hello"); l.addView(t); } RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main); RemoteViews view = new RemoteViews (context.getPackageName(), l.getId()); views.addView(R.layout.main, view); 但是,当我添加小部件,我得到一个问题加载小部件错误。 看起来像RemoteViews接收构造的视图id作为参数有问题。 但是我不能对XML资源进行引用,因为它们是在运行时创build的。 在运行时用TextViews填充RemoteViews的正确方法是什么?

如何从编辑文本中获取确切的文本,并在android中设置为文本视图

我的问题是这个我想从编辑文本中设置的字体,以及文本大小,文字颜色和文本样式,如粗体,斜体和下划线中的确切文字。 直到现在,我用Spannable这样Spannable messageText; 并像这样从EditText中获取文本 messageText = editText.getText(); 并设置为textview textView.setText(messageText); 但在这种情况下,它只返回简单的string,不是color,font,size and style 。 EditText <EditText android:id="@+id/message" android:layout_width="fill_parent" android:layout_height="180dp" android:inputType="textMultiLine" android:singleLine="false" android:tag="no" android:textColor="#000000" android:textSize="15sp" android:textStyle="normal" android:typeface="normal" /> TextView <TextView android:id="@+id/preview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="" android:textColor="#000000" android:textSize="15sp" android:textStyle="normal" android:typeface="normal" /> 帮助我,谢谢

Android:ellipsize结尾 – 省略号后的额外字符

我已经build立了一个文本视图如下: <TextView android:id="@+id/TextView_top" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:ellipsize="end" android:maxLines="3" android:textColor="@color/white" android:textIsSelectable="false" android:textSize="14sp" /> 里面的文本是由布局的充气机编程设置的,文本来自于一个XML feed。 我已经检查了源代码,没有任何杂乱的字符或换行符。 在运行Android 4.3的Nexus 4上testing这个TextView我看到奇怪的行为。 内部的string结束:“”Lorem ipsum dolor sit amet“ 在Nexus上这是截断在正确的地方,而不是结束省略字符,如:“dol …”,我得到“dol … s”与最终字符一半被遮蔽,因为它突破保证金。 增加保证金,最后给我“ipsum … dol”。 我已经检查了我的其他testing设备运行4.1.2的Galaxy S3和运行4.0.3的Desire C,它不存在。 有其他人看到这种行为与ellipsize:结束? 对于我可能做错的任何build议,或者我如何解决这个问题?