我知道那里有很多关于这个主题的信息,但我还是有点困惑。我为一个Android应用程序创建了一个类视图,它可以使用位图和文本。
我像这样定义文本位置:
canvas.drawText("SCORE: " + score, (canvas.getWidth() - 150),
(canvas.getHeight() - 20), paintScore);
每个例子,但我知道这不是最好的方法,因为它看起来就像我想要的手机一样,但在屏幕较小或较大的屏幕上看起来很像可怕的,或只是在屏幕外。
我该怎么做?
答案 0 :(得分:0)
最好选择宽度来定位相对于画布大小的内容 - 所以找出你想要手机上文字的位置 - 例如,如果你想让它从中心开始:
int x = canvas.getWidth()/2
如果这些相对类型测量结果不合理,作为最后的手段,android指定了一种特殊的资源(@dimen),您可以在各种值文件夹(例如values-small/dimen.xml
或那里有values-xlarge/dimen.xml
)和硬编码整数值。 (如docs中所示)然后像检索其他资源一样检索它们:
getResources().getDimensionPixelOffset(R.dimen.score_margin)
答案 1 :(得分:0)
你有很多解决方案:
1)使用与密度无关的像素(dip):
这是一种从px转换为dip的方法:
public static int pxToDip(Activity activity, int size){
Resources r = activity.getResources();
int dipSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, size, r.getDisplayMetrics());
return dipSize;
}
2)使用百分比:
获取屏幕尺寸,将其与所需的文字大小进行比较,然后按百分比添加保证金