人!
好吧,谷歌搜索了近两天没有结果,我决定在这里问。 (这是我的第一个问题。)
我正在为Android创建一个引号窗口小部件(每次显示一个随机引用),因此它有两个TextView和一个ImageButton来获取一个新的随机引用。第一个TextView显示引用文本,第二个显示引用的作者。并且,当用户点击窗口小部件时,它会调用一个活动,以全屏显示报价,如果需要则使用滚动条,依此类推。
问题是引用的文本有时很长,所以我想要对它进行椭圆化处理。但是因为ellipsize不能超过2行...我正在寻找想法。
我不知道是否有必要,但这是布局代码。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/laySmall"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="@dimen/widget_margin"
android:background="@drawable/widgetback" >
<ImageButton
android:id="@+id/ibtNext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:background="@null"
android:contentDescription="@string/app_name"
android:src="@drawable/seta" />
<TextView
android:id="@+id/txtWdgQuote"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/ibtNext"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginBottom="8dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginTop="4dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#000000"
android:textStyle="italic"
android:typeface="serif"
android:maxLines="3" />
<TextView
android:id="@+id/txtWdgAuthor"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#000000"
android:textStyle="bold" />
</RelativeLayout>
基本上,我在这个项目中有3个AppWidgets,显示了几乎相同的东西。所有变化都是尺寸和字体大小。
所以......我的一个想法是使用自定义TextView。但是在AppWidget中,没办法。 :/
另一个想法是做这样的事情:
if (quoteText.length() > something) {
quoteText = quoteText.substring(0, something) + "\"[...]"
}
此解决方案的问题在于换行符在哪里,因为它可以更改可以显示的字符串的大小。例如,假设一个包含小词的字符串:这些行将在边框旁边打破。与此同时,一条字符串的字符串越大,字符串就越远离边界。
所以......我不知道我做了什么。有什么想法吗?
谢谢!
(我遇到了android:layout_margin的问题,所以它可能会小一点,但我还没时间研究它。