2017-03-31 68 views
0

由於documentation狀態:無法解析法 '的getFont(?)'

Android O lets you bundle fonts as resources by adding the font file in the res/font/ folder.

結果

cannot resolve method 'getFont(?)' 

以前我曾經做到以下幾點:

Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf"); 

但現在,當我嘗試創建字體內部資產文件夾文件夾,它會自動跳到裏面資源文件夾。我正在使用android studio 2.3。預先感謝您的幫助。

+0

你是如何調用'getFont'?你有一個有效的'Resources'對象嗎? – njzk2

+0

您是否定位到開發人員預覽版? – Submersed

+0

@ njzk2我不知道。每當我嘗試創建資產文件夾內的字體文件夾時,它會跳出它並進入res文件夾。 – Darush

回答

0

因爲我沒能文件夾直接從Android Studio中創建字體,我打開使用Windows資源管理器項目文件夾,並創建了字體app\src\main\assets\文件夾中粘貼我的字體文件存在。

正如很多其他人在回答中所建議的,我不得不使用Android Studio 2.4 Canary才能夠使用Android O的新功能。該documentation狀態:

Only Android Studio 2.4 includes support for all the new developer features available with Android O. So you need to get the canary version of Android Studio 2.4 to begin using the Android O SDK. But you can still keep your stable version of Android Studio installed.

0

嘗試這樣的事情

Typeface yourFont = Typeface.createFromAsset(getAssets(), "fonts/yourFont.ttf"); 
+0

謝謝你的回答,但我已經更新了這個問題。我曾經這樣做,但我無法創建資產文件夾內的字體文件夾,因爲它會自動創建res文件夾中的字體文件夾 – Darush

1

我沒有用它了但是據我知道你可以指定Android O設備只有當你更新Android工作室2.4。而且您還需要將SDK更新到最新版本。因爲醫生說的getFont()在Android的O.

+0

感謝您的答案。我正在使用compileSdkVersion 25 buildToolsVersion「25.0.2」。很抱歉,SDK管理器目前沒有更新可用。 – Darush

+1

讓你的工作室從金絲雀通道下載更新,然後你可以下載studio 2..4 preview 3.之後,你可以下載SDK工具版本26.0.0 – Kunu

+0

謝謝,我目前正在下載新的更新,並會讓每個人都知道結果。 – Darush

0

提供他們的方式我做它是這樣的:

private TextView textView; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
. 
. 
. 
. 

textView = (TextView) findViewById(R.id.textView); 
Typeface mTextView = Typeface.createFromAsset(getAssets(),"fonts/your_font_style.ttf"); 
textView.setTypeface(mTextView); 

希望這會幫助你。

0

字體文件夾應位於資產文件夾下,因此請嘗試在其中創建文件夾。

+0

字體文件夾自動跳出資產文件夾並進入res文件夾 – Darush

1

由於這是一種在O中發佈的新方法,因此您必須將開發人員預覽作爲構建目標來使用它。欲瞭解更多信息,請查看link

0

我知道這可能是晚了,但這裏的documentation使用與API版本下載的字體前26(兼容模式)。

基本上,你必須定義字體的描述如下所示(使用兩個屬性 - 應用程序和Android),然後使用ResourceCompat類以編程方式訪問您的字體:

Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);

<?xml version="1.0" encoding="utf-8"?> 
<font-family xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
     <font android:fontStyle="normal" android:fontWeight="400" 
      android:font="@font/myfont-Regular" 
      app:fontStyle="normal" app:fontWeight="400" 
      app:font="@font/myfont-Regular"/> 
     <font android:fontStyle="italic" android:fontWeight="400" 
      android:font="@font/myfont-Italic" 
      app:fontStyle="italic" app:fontWeight="400" 
      app:font="@font/myfont-Italic" /> 
</font-family> 

乾杯!