如果我要初始化一个Paint,并设置它的文本大小如下:
Paint = new Paint();
Paint.setAntiAlias(true);
Paint.setARGB(255, 255, 0, 0);
Paint.setTextSize(screenWidth/100);
//screenWidth is the width of the screen in pixels given via display metrics.
然后像这样在画布上绘制文字:
String text = "Hello"
canvas.drawText(text, (screenWidth/13), (screenHeight/5), Paint);
无论屏幕指标如何,文本是否会在相同的相对位置显示相同的相对大小?我问,因为我只有一台设备而且我的多核机器上的仿真器运行得不好。
到目前为止,我一直在做的是简单地使用带有在背景上写入的文本的位图,但是我的内存使用量变得非常繁重,所以我希望减少加载的位图数量。
我的另一个选择是将文本保存为具有透明背景的位图,并将其覆盖在单个位图背景上。但这似乎只有生产力的一半,因为它实际上创建了1个位图,只是减少了存储的所有位图的总大小。我也不喜欢这个想法,因为我最终想要更多地控制对象的生命周期,这会降低效率。
此外,是否有任何方法可以向文本添加样式(例如复杂的字体和颜色模式,除了使用预制的Drawables),以便文本可以绘制到画布? (尽可能便宜)
答案 0 :(得分:0)
NVM,Solved By整天逛逛我发现DP单元可以从res文件夹调用,并且会给出相当统一的文本位置。而且这种油漆不像我希望的那样定制友好。