在扩展文本视图滚动条中增加文本大小时截断的文本

时间:2012-09-28 13:13:57

标签: android textview marquee scroller

我有一个派生自Android TextView的类来自定义TextView,它根据此示例滚动文本:Original Example Code

我的问题是文本在不同位置被截断,具体取决于滚动期间文本的大小。例如,一些长度为90个字符的文本在文本大小小于100时滚动正常,但如果文本大小设置为240(因此它在横向模式下填充我的手机高度)文本在字符位置83处被截断。文本大小越被截断。

这几乎就像有某种内存限制一样?

ScrollTextView scrolltext;
scrolltext.setTextSize(TypedValue.COMPLEX_UNIT_PX, xtextsize);
scrolltext.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
scrolltext.setSingleLine(true);
scrolltext.setEllipsize(null);
scrolltext.setMaxLines(1);
scrolltext.startScroll();

并在班级

setHorizontallyScrolling(true);
mSlr = new Scroller(this.getContext(), new LinearInterpolator());
setScroller(mSlr);
int scrollingLen = calculateScrollingLen()
int duration = (new Double(((scrollstart.mRndDuration*10)/getWidth())*getText().length())).intValue();
setVisibility(VISIBLE);
mSlr.startScroll(mXPaused, 0, scrollingLen, 0, duration);

如果有人想尝试重新创建问题,可以使用original example code重新创建问题。

那么有没有人知道为什么文本会根据文本大小在不同位置被截断?

我的布局

<LinearLayout
   android:id="@+id/ll"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >
   <com.test.testing.ScrollTextView
        android:id="@+id/scrolltext"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:textSize="20sp"/>
</LinearLayout>

提前致谢

此外:当使用不同的字体时,截断开始的点在使用相同的文本大小时会改变位置。仍然看起来像资源问题,但在哪里增加缓冲区?

1 个答案:

答案 0 :(得分:0)

检查横向/纵向模式期间的textview高度是否更改以及设置为fill_parent的高度。这只会将控件的父级填充为设备大小,如果内容大于大小,则不会滚动。您可以将此视图放在scrollview中,并将textview height设置为wrap_content。