| /* |
| * Copyright (C) 2014 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.graphics; |
| |
| import android.content.res.AssetManager; |
| |
| /** |
| * A family of typefaces with different styles. |
| * |
| * @hide |
| */ |
| public class FontFamily { |
| /** |
| * @hide |
| */ |
| public long mNativePtr; |
| |
| public FontFamily() { |
| mNativePtr = nCreateFamily(null, 0); |
| if (mNativePtr == 0) { |
| throw new IllegalStateException("error creating native FontFamily"); |
| } |
| } |
| |
| public FontFamily(String lang, String variant) { |
| int varEnum = 0; |
| if ("compact".equals(variant)) { |
| varEnum = 1; |
| } else if ("elegant".equals(variant)) { |
| varEnum = 2; |
| } |
| mNativePtr = nCreateFamily(lang, varEnum); |
| if (mNativePtr == 0) { |
| throw new IllegalStateException("error creating native FontFamily"); |
| } |
| } |
| |
| @Override |
| protected void finalize() throws Throwable { |
| try { |
| nUnrefFamily(mNativePtr); |
| } finally { |
| super.finalize(); |
| } |
| } |
| |
| public boolean addFont(String path) { |
| return nAddFont(mNativePtr, path); |
| } |
| |
| public boolean addFontWeightStyle(String path, int weight, boolean style) { |
| return nAddFontWeightStyle(mNativePtr, path, weight, style); |
| } |
| |
| public boolean addFontFromAsset(AssetManager mgr, String path) { |
| return nAddFontFromAsset(mNativePtr, mgr, path); |
| } |
| |
| private static native long nCreateFamily(String lang, int variant); |
| private static native void nUnrefFamily(long nativePtr); |
| private static native boolean nAddFont(long nativeFamily, String path); |
| private static native boolean nAddFontWeightStyle(long nativeFamily, String path, |
| int weight, boolean isItalic); |
| private static native boolean nAddFontFromAsset(long nativeFamily, AssetManager mgr, |
| String path); |
| } |