AppWidget ListView中的StaticLayout显示超过50行的不可见文本

时间:2017-07-23 20:31:33

标签: android listview bitmap android-appwidget staticlayout

我有一个AppWidget RemoteViewListView有一个孩子 - 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行时,它显示为空,但我可以滚动列表视图(因此staticLayout不为空,因为位图的高度不为0)。

另一个重要的事情是以下行为: 当我开始拖动窗口小部件时,会出现文本。在我放下之后,文本立即消失。

什么可能导致这种行为? 也许遇到类似问题的人可以提供帮助。

修改

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

0 个答案:

没有答案