我创建了一个包含文本的小部件。我想将...添加到没有足够空间显示整个文本的文本末尾。我用android:ellipsize="end"
但只有前两行是可见的。在小部件文本上使用椭圆大小的Android
这是窗口小部件布局:
<?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>
第一图像是与ellipsize效果。第二个是没有它。你可以看到有足够的地方显示更多的文字。
我在一个1x2的小部件也试过了,同样的情况
感谢Devunwired,我现在这个很努力,但一切都没有改变(我想我做的SG错)
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);
如果你设置'机器人什么省略号:minLines' 3,它停止在3或者这是否修复bug? – Blundell
您的XML中是否还有'android:ellipsize =“end”'值。如果您正在手动执行操作,那需要消失。 – Devunwired
当然我删除它 – erdomester