OpenBaseMovil 设备检测(1)
以下代码由bm.core.tools.DeviceInfo.java抽出,详见该文件
private void testFontListBug() { if( isNokia() ) { // 就算是Nokia的设备也要进行一下测试来确定是否有这个Bug final Font font = Font.getFont( Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL ); final List list = new List( "", List.IMPLICIT ); for( int i = 0; i < 3; i++ ) { list.append( "", null ); } for( int i = 0; i < 3; i++ ) { list.setFont( i, font ); } list.deleteAll(); try { for( int i = 0; i < 4; i++ ) { list.append( "", null ); } listFontBug = false; } catch( Throwable e ) { listFontBug = true; } } else { // 除Nokia设备外,其它设备都假定它有这个Bug // 不知道实际上是不是这样呢?我估计大部分的手机都有这个问题 // 不然他不会这么做 listFontBug = true; } }
if( !DeviceInfo.getDeviceInfo().hasListFontBug() ) { final int itemCount = list.size(); for( int i = 0; i < itemCount; i++ ) { list.setFont( i, Util.SMALL_FONT ); } }