1

人们!

好吧,在谷歌搜索了将近两天没有结果之后,我决定在这里问。(这是我的第一个问题。)

我正在为 Android 创建一个报价小部件(每次都显示一个随机报价),因此它有两个 TextView 和一个 ImageButton 来获取新的随机报价。第一个 TextView 显示引用文本,第二个显示引用的作者。而且,当用户单击小部件时,它会调用一个全屏显示报价的 Activity,如果需要,还带有滚动条,等等。

问题是引用的文字有时很长,所以我想省略它。但由于椭圆形不能使用超过 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 个 AppWidget,显示几乎相同的东西。所有的变化都是大小和字体大小。

所以...我的一个想法是使用自定义 TextView。但是在 AppWidget 中,没办法。:/

另一个想法是做这样的事情:

if (quoteText.length() > something) {
    quoteText = quoteText.substring(0, something) + "\"[...]"
}

这个解决方案的问题是换行符在哪里,因为它可以改变可以显示的字符串的大小。例如,假设一个带有小单词的字符串:线条将在边框旁边断开。同时,具有较大单词的字符串换行符将远离边界。

所以...我不知道我在做什么。请问有什么想法吗?

谢谢!

(我遇到了 android:layout_margin 的问题,所以它可以小一点,但我还没有时间处理这个问题。

4

0 回答 0