林getAssets()试图从加载custome字体 “资产\字体” 文件夹获取字体与getResources()从资产文件夹返回NullPointerException异常
这是我的 “TypefaceSingelton” 类代码:
public class TypefaceSingelton {
private static TypefaceSingelton instance = new TypefaceSingelton();
private TypefaceSingelton() {}
public static TypefaceSingelton getInstance() {
return instance;
}
public static Typeface getFont() {
return Typeface.createFromAsset(AppContext.getAppContext().
getResources().getAssets(), "fonts/Myfont.otf");
}
}
和我的 “AppContext” 类:
public class AppContext extends Application {
public static Context context;
@Override
public void onCreate(){
super.onCreate();
AppContext.context = getApplicationContext();
}
public static Context getAppContext() {
return AppContext.context;
}
}
,我该如何使用它我的MainActivity内:
public class MainActivity extends Activity {
private final Typeface FontTF = TypefaceSingelton.getFont();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final AutoCompleteTextView CtextView = (AutoCompleteTextView) findViewById(R.id.autoComplete);
CtextView.setTypeface(FontTF);
,并在 “Typeface.createFromAsset” 里面TypefaceSingelton给出了异常:
08-16 07:55:51.834: E/AndroidRuntime(3109): Caused by: java.lang.NullPointerException
08-16 07:55:51.834: E/AndroidRuntime(3109): at com.test.TypefaceSingelton.getFont(TypefaceSingelton.java:20)
08-16 07:55:51.834: E/AndroidRuntime(3109): at com.test.MainActivity.onCreate(MainActivity.java:133)
08-16 07:55:51.834: E/AndroidRuntime(3109): at android.app.Activity.performCreate(Activity.java:5104)
08-16 07:55:51.834: E/AndroidRuntime(3109): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
即时通讯将使用 “TypefaceSingelton”,以避免性能除了
private final Typeface FontTF;
@Override
public void onCreate(Bundle savedInstanceState) {
Typeface FontTF = TypefaceSingelton.getFont();
me =“{packege} .AppContext”...> ... application>' –