カスタムフォントテキストを使用して、 1人の子を保持するAppWidget
RemoteView
with があります。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 行を超えるたびに空として表示されますが、リストビューをスクロールできます (したがって、ビットマップの高さが 0 ではないため、staticLayout は空ではありません)。
もう 1 つの重要なことは、次の動作です。ウィジェットのドラッグを開始すると、テキストが表示されます。ドロップした直後に、テキストが再び消えます。
何がそのような行動を引き起こす可能性がありますか? 同様の問題に直面した誰かが助けてくれるかもしれません。
編集:
ビットマップをpngとしてキャッシュディレクトリに保存してから、メソッドで画像を設定しようとしましたsetImageViewUri
が、結果は同じです。適切な寸法の透明な画像で、ドラッグ アンド ドロップすると表示されます。