FontFamily.java revision 15cf4757dc0099301662f8a26da561434cc07cfa
11a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien/* 21a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * Copyright (C) 2014 The Android Open Source Project 31a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * 41a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * Licensed under the Apache License, Version 2.0 (the "License"); 51a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * you may not use this file except in compliance with the License. 61a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * You may obtain a copy of the License at 71a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * 81a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * http://www.apache.org/licenses/LICENSE-2.0 91a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * 101a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * Unless required by applicable law or agreed to in writing, software 111a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * distributed under the License is distributed on an "AS IS" BASIS, 121a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * See the License for the specific language governing permissions and 141a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * limitations under the License. 151a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien */ 161a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien 171a73f732f91e97c9c66b808c245ddda36a10e987Raph Levienpackage android.graphics; 181a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien 191a73f732f91e97c9c66b808c245ddda36a10e987Raph Levienimport java.io.File; 201a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien 211a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien/** 221a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * A family of typefaces with different styles. 231a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * 241a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * @hide 251a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien */ 261a73f732f91e97c9c66b808c245ddda36a10e987Raph Levienpublic class FontFamily { 279a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien /** 289a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien * @hide 299a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien */ 301a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien public long mNativePtr; 319a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien 321a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien public FontFamily() { 331a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien mNativePtr = nCreateFamily(); 349a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien mNativePtr = nCreateFamily(); 359a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien if (mNativePtr == 0) { 369a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien throw new RuntimeException(); 379a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien } 381a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien } 3915cf4757dc0099301662f8a26da561434cc07cfaRaph Levien 4015cf4757dc0099301662f8a26da561434cc07cfaRaph Levien @Override 4115cf4757dc0099301662f8a26da561434cc07cfaRaph Levien protected void finalize() throws Throwable { 4215cf4757dc0099301662f8a26da561434cc07cfaRaph Levien try { 4315cf4757dc0099301662f8a26da561434cc07cfaRaph Levien nUnrefFamily(mNativePtr); 4415cf4757dc0099301662f8a26da561434cc07cfaRaph Levien } finally { 4515cf4757dc0099301662f8a26da561434cc07cfaRaph Levien super.finalize(); 4615cf4757dc0099301662f8a26da561434cc07cfaRaph Levien } 4715cf4757dc0099301662f8a26da561434cc07cfaRaph Levien } 481a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien 491a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien public boolean addFont(File path) { 501a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien return nAddFont(mNativePtr, path.getAbsolutePath()); 511a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien } 521a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien 531a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien static native long nCreateFamily(); 5415cf4757dc0099301662f8a26da561434cc07cfaRaph Levien static native void nUnrefFamily(long nativePtr); 551a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien static native boolean nAddFont(long nativeFamily, String path); 561a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien} 57