我有一个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行时,它显示为空,但我可以滚动列表视图(因此staticLayout不为空,因为位图的高度不为0)。
另一个重要的事情是以下行为: 当我开始拖动窗口小部件时,会出现文本。在我放下之后,文本立即消失。
什么可能导致这种行为? 也许遇到类似问题的人可以提供帮助。
修改
我尝试将位图保存为png到缓存目录,然后通过setImageViewUri
方法设置图像,但结果是一样的。具有正确尺寸的透明图像,以及拖放时 - 可见。