내 위젯에 사용자 정의 글꼴을 배치하려면 글꼴이있는 비트 맵을 만든 다음 RemoteViews에 배치해야합니다. 그러나 비트 맵에있는 텍스트는 꽤 흐릿 해 보이며 실제로는 액티비티 내에 투명하게 표시되는 것과 비교해 볼 때 픽셀 화되어 있습니다.비트 맵을 사용하면 RemoteViews (위젯)에 텍스트가 흐릿합니다.
이미 위젯에서 맞춤 글꼴을 사용하는 앱이 많이 있습니다. 나는 아직 이것을 할 수있는 확실한 방법을 찾지 못했습니다. 누구든지이 문제에 대한 더 나은 해결책을 가지고 있다면 나는 그것을 듣고 싶습니다!
오른쪽 지금이 내가 비트 맵을 생성하고 위젯에 배치하기 위해 사용하고 무엇을 :
RemoteViews widgetView = new RemoteViews(this.getPackageName(), R.layout.widget);
widgetView.setImageViewBitmap(R.id.widgetImage, buildBitmap());
public Bitmap buildBitmap() {
Bitmap bitmap = Bitmap.createBitmap(160, 84, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
TextPaint textPaint = new TextPaint(TextPaint.LINEAR_TEXT_FLAG | TextPaint.ANTI_ALIAS_FLAG);
textPaint.setTypeface(getFont());
textPaint.setStyle(Style.FILL);
textPaint.setColor(fontColor);
textPaint.setTextSize(fontSize);
StaticLayout staticLayout = new StaticLayout(textString, textPaint, bitmap.getWidth(), Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
staticLayout.draw(canvas);
return bitmap;
}
범인 위젯을
와 함께! 맨 위에있는 글꼴은 사용자 지정 글꼴로, 중간 이미지는 비트 맵에 기본 Sans 글꼴로 사용되어 어떤 글꼴이 사용 되더라도 텍스트가 흐릿하다는 것을 나타냅니다.마지막 이미지는 비트 맵 대신 기본값 인 remoteView.setTextViewText("Text");
을 사용할 때의 텍스트입니다.
이 문제에 대한 도움을 주시면 대단히 감사하겠습니다.
160x84 크기가 너무 작아 보입니다. 화면 밀도를 조정하면 안됩니까? – Delyan
맞춤형 서체가있는 텍스트 뷰를 가질 수없는 이유를 상기시켜주십시오. – Tom
위젯이므로 @Tom. 'RemoteViews'는 그렇게하지 않습니다. – kabuko