我创建了一个带有文本的小部件。我想在没有足够位置显示整个文本的文本末尾添加 ...。我用过   android:ellipsize="end",但只有前两行可见。
这是小部件布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="64dip"
    android:layout_height="72dip"
    android:layout_gravity="center"
    android:id="@+id/widgetlayout">
    <ImageView android:id="@+id/ImageView01"
     android:layout_width="72dip" 
     android:layout_height="72dip"
     android:scaleType="fitXY">
    </ImageView>
    <TextView
        android:id="@+id/tvConfigInput"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:gravity="left"
        android:textColor="#FFFFFF"
        android:layout_margin="2dip"    
        android:ellipsize="end"
        android:textSize="12dip" />
</RelativeLayout>
第一张图片是椭圆效果的。第二个没有它。你可以看到有足够的地方显示更多的文本。
我也在 1x2 小部件中尝试过,同样的情况

感谢 Devunwired,我现在正在尝试这个,但没有任何改变(我想我做错了)
RemoteViews views = new RemoteViews(c.getPackageName(), R.layout.widget_layout);
        TextPaint paint = new TextPaint(); 
        final float densityMultiplier = this.getResources().getDisplayMetrics().density;
        final float scaledPx = 20 * densityMultiplier;
        paint.setTextSize(scaledPx);
        final float size = paint.measureText(widgettext);  
        Log.i("size", size + "");  //1716 e.g
        while (widgettext != TextUtils.ellipsize(widgettext, paint, (float)GetDipsFromPixel(72),  TextUtils.TruncateAt.END)) { 
            paint.setTextSize(paint.getTextSize() - 1);
        }
        views.setTextViewText(R.id.tvConfigInput, widgettext);
        views.setTextColor(R.id.tvConfigInput, loadedtextcolor);
        views.setFloat(R.id.tvConfigInput, "setTextSize", int_widgetfontsize);