如果我初始化一个画图,并像这样设置它的文本大小:
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);
无论屏幕尺寸如何,文本会以相同的相对大小显示在相同的相对位置吗?我这样问是因为我只有一台设备,而Emulator在我的多核机器上运行得不是很好。
到目前为止,我一直在做的是简单地使用位图,将文本写在背景上,但我的内存使用变得相当繁重,所以我希望减少加载的位图数量。
我的另一个选择是将文本保存为具有透明背景的位图,并将其覆盖在单个位图背景上。但这似乎只有一半的效率,因为它实际上多创建了1个位图,只是减少了所有存储的位图的总大小。我也不喜欢这个想法,因为我最终想要对对象生命周期进行更多的控制,这会降低效率。
另外,有没有什么方法可以将样式添加到文本(除了使用预制的Drawables之外,还可以添加复杂的字体和颜色模式),以便可以将文本绘制到画布上?(尽可能便宜)
发布于 2011-12-04 19:58:18
NVM,我发现可以从res文件夹中调用DP单元,并且会给出一个相当一致的文本位置。而且,这种油漆并不像我希望的那样适合定制。
https://stackoverflow.com/questions/8375823
复制