2011-04-05 60 views
0

解析Android中尺寸值的正确方法是什么?例如,我想从这些字符串中的任何一个获得值为20的int20px,20mm20dp解析Android中尺寸的值

尝试Integer.parseInt()没有让我走得很远,因为它在非数字字符上引发异常。

回答

0

如果单位总是存在的,只是提到了一个,你肯定你永远不会需要它 - 简单地分析一个子str.substring(0, str.length() - 3)

我会建议使用自定义的类来解析并保持包括单位在内的价值 - 您可能需要某个时间。

+0

我想知道是否这样的东西已经内置到Android SDK中。似乎它会是常用的东西。 – 2011-04-05 05:11:35

+0

我相信在解析UI布局XML时会有这样的东西在Android中使用。尽管我没有发现它是公开的,但是对于这里提到的相当小的问题,编写一个类来分析和保存解析值是一个几分钟的问题。 :O) – mbanzon 2011-04-05 05:19:25

0

如果从AttributeSet开始,可以通过Context获取TypedArray,最终使用getDimension或相关函数。

如果你只是想传递一个字符串,parseInt函数没有抛出异常试试这个:

Integer.parseInt(someString.replaceFirst("[^0-9].*" , "")); 

正则表达式截断开始不是一个数字的第一个字符的字符串。这意味着字符串必须以数字开头。