Android 如果超过50行,AppWidget ListView中的StaticLayout将显示不可见文本

Android 如果超过50行,AppWidget ListView中的StaticLayout将显示不可见文本,android,listview,bitmap,android-appwidget,staticlayout,Android,Listview,Bitmap,Android Appwidget,Staticlayout,我有一个AppWidgetRemoteView,带有一个ListView,其中包含一个子ImageView,带有自定义字体文本 这是我的密码: Typeface tf = Typeface.createFromAsset(mContext.getAssets(),"fonts/myfont.ttf"); TextPaint textPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); textPaint.setTypeface(tf); textP

我有一个
AppWidget
RemoteView
,带有一个
ListView
,其中包含一个子
ImageView
,带有自定义字体文本

这是我的密码:

Typeface tf = Typeface.createFromAsset(mContext.getAssets(),"fonts/myfont.ttf");

TextPaint textPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
textPaint.setTypeface(tf);
textPaint.setStyle(Paint.Style.FILL);
textPaint.setColor(mycolor);
textPaint.setTextSize(px);

StaticLayout staticLayout = new StaticLayout(textString, textPaint, width, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);

Bitmap bitmap = Bitmap.createBitmap(width, staticLayout.getHeight(), Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(bitmap);
staticLayout.draw(canvas);

rv.setImageViewBitmap(R.id.imageViewText, bitmap);
它工作正常。 但是,每次文本长度超过50/60行时,它都显示为空,但我可以滚动listview(因此staticLayout不是空的,因为位图的高度不是0)

另一件重要的事情是以下行为: 当我开始拖动小部件时,会显示文本。在我放下它之后,文本立即又消失了

什么会导致这种行为? 也许有人遇到过类似的问题可以帮上忙

编辑:


我试图将位图保存为png到缓存目录,然后通过
setImageViewUri
方法设置图像,但结果是一样的。具有正确尺寸的透明图像,拖放时-其可见。

可能位图太大。它显示整个位图高度,但文本不可见。我的观点是,主屏幕可能与该尺寸的图像(分辨率或内存)有问题。请记住,有数百种不同的主屏幕实现。你越是突破极限,你的应用程序小部件在某些主屏幕上失败的可能性就越大。此外,如果内容分成几行,为什么不每行一张图片呢?这是个好主意,谢谢。我同意,也许位图太大了,但我想如果它太大,至少会导致OutOfMemory异常。好的,这是因为图像大小。我发现了其他类似的问题