向OpenUI5添加新图标?

时间:2015-03-24 07:05:00

标签: sapui5

我们需要向OpenUI5添加新图标。 图标已定义为基于矢量的字体。

我知道可以通过像https://icomoon.io/这样的服务将图标添加到SAP标准字体。但是,我希望能够在一个单独的文件中将它们保存在外面(这样我们就不需要在新的OpenUI5版本出现时重做任务了。)

是否可以定义用于图标的其他字体?

2 个答案:

答案 0 :(得分:10)

正如您已经提到的,为了将来的兼容性原因,扩展UI5字体并不是一个好主意。如果您已经拥有自己的字体,可以使用UI5轻松注册,并使用类似的url-schema引用它。你可以说sap-icon://funny-icon而不是sap-icon://dparnas-icon/funny-icon

以下是一个示例实现:

jQuery.sap.require("sap.ui.core.IconPool");
jQuery.sap.require("sap.ui.thirdparty.URI");

(function() {
  var aIconNames = [ "funny-icon", "another-icon" ], // the icon names
    sCollectionName = "dparnas-icon", // the collection name used in the url-schema
    sFontFamily = "DarnasIcons", // the icon font family like defined in your css
    aIconContents = [ "E003", "E004" ]; // the unicode characters to find aIconNames under, same order

  // add the icons the your icon pool
  for (var i = 0; i < aIconNames.length && i < aIconContents.length; i++) {
    sap.ui.core.IconPool.addIcon(
      aIconNames[i], 
      sCollectionName, 
      sFontFamily, 
      aIconContents[i]
    );
  }
}());

此外,您必须在CSS中定义font-family。而已!它很容易但很难找到;)

答案 1 :(得分:1)

我尝试在我的应用程序中添加fontawesome图标希望这有助于您生成和使用自定义图标

 @font-face {  
  font-family: 'fontAwesome';  
  src:url('./css/font-awesome/fonts/fontawesome-webfont.eot?5qvb9g');  
  src:url('./css/font-awesome/fonts/fontawesome-webfont.eot?5qvb9g#iefix') format('embedded-opentype'),  
  url('./css/font-awesome/fonts/fontawesome-webfont.ttf?5qvb9g') format('truetype'),  
  url('./css/font-awesome/font-awesome/fonts/fontawesome-webfont.woff?5qvb9g') format('woff'), 
  url('./css/font-awesome/fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');       
  font-weight: normal;  
  font-style: normal;  
}  
[class^="icon-"], [class*=" icon-"] {  
  font-family: 'fontAwesome';  
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}  
.icon-bell:before {  
  content: "\f0f3";  
}

//initialize the icon in Init()
sap.ui.getCore().attachInit(function () {
  //sap.ui.core.IconPool.addIcon(iconName, collectionName, iconInfo, content)//icon definition 
  sap.ui.core.IconPool.addIcon('register', 'customfont', 'fontAwesome', 'f0f3'); //adding new icon
})   

//Using the icon
sap-icon://customfont/bell